Python教程-用于数据可视化的Python库
Python编程语言具有不同类型的库,适用于各种项目。同样,Python有各种用于数据可视化的库,以便用户可以以非常详细的方式理解数据集并进行适当的分析。
每个可视化库都有自己的规格。使用特定任务的特定库有助于用户更轻松、更准确地完成任务。某些库比其他库更好用。在本文中,我们将讨论这些库的优缺点,以了解哪个库更适合数据可视化。
Python编程中用于数据可视化的库如下:
- Matplotlib
- Ggplot
- Pygal
- Missingno
- Seaborn
- Plotly
- Gleam
- Leather
- Geoplotlib
- Bokeh
- Folium
Matplotlib
Matplotlib是一个用于在Python编程语言中绘制图形的库。它用于绘制二维数组。Matplotlib是建立在NumPy数组之上的。它设计用于与边界的SciPy堆栈一起使用。它由John Hunter于2002年开发。
可视化的好处是用户可以对大量数据集进行可视化访问。Matplotlib是一个库,包含各种图形,如直方图、柱状图、折线图、散点图等。
Matplotlib附带了大量的图形。图形有助于理解模式、趋势,并进行相关性分析。它具有用于思考定量数据的工具。
由于Matplotlib是Python中的第一个数据可视化库,因此许多其他库都是在其之上开发或并行设计,用于分析数据集。
import matplotlib.pyplot as pyplt
import numpy as np
np.random.seed ( 16 )
pyplt.ylable ( ' stepfilled ' )
pyplt.show ( )
输出:
Seaborn
Seaborn是Python编程的一个库,主要用于制作数据集的统计图表。该库建立在Matplotlib库之上。它还与Pandas密切集成,Pandas用于数据集的数据结构。
Seaborn非常有助于更好地探索和理解数据。它提供了一个高水平的交叉点,用于绘制引人入胜和信息丰富的代数图形。让我们了解以下示例。
示例 -
import seaborn as sns
sns.set ( color_codes = True)
import matplotlib.pyplot as plt
for i in range(n_rows):
fg,ax = plt.subplots(nrows=1,ncols=n_cols,sharey=True,figsize=(8, 2.4))
for j in range(n_cols):
sns.violinplot(x = data.Outcome, y=data[columns[idx]], ax=ax[j])
idx += 1
if idx >= 8:
break
输出:
Ggplot
ggplot是一个Python操作的图形语法。它基于ggplot2,这是R编程语言绘图系统。它的操作方式与matplotlib不同,因为它允许用户分层组件以创建完整的绘图。用户可以从轴开始分层,添加点,然后是线,然后是趋势线,依此类推。
ggplot不是为开发高度自定义的图形而设计的。它具有较低的绘图复杂性。它与Pandas集成。因此,在使用ggplot时,最好将数据存储在数据帧中。
示例 -
from plotnine.data import economics
from plotnine import ggplot , aes , geom_line
(
ggplot ( economics ) #what data to use
+ aes ( x = " price " ) #what variables to use
+geom_line ( ) #Geometric object to use for creating graphs.
)
Bokeh
Bokeh是一个Python库,也是基于图形语法的,就像ggplot一样。它仅与Python语言兼容。这个库不能在R编程语言中使用。这个库具有构建交互式、适用于Web的图形的能力,这些图形是JSON对象、交互式Web应用程序或HTML文档的输出。这个Python语言的库还允许流式处理和实时数据。
Bokeh库有三个不同级别的接口,以满足不同类型用户的需求。最高级别的控制用于快速创建图表。这个库包括了生成和绘制标准图表的不同方法,如柱状图、直方图和箱线图。最低级别专注于开发人员和软件工程师。
这个级别没有预设默认值,用户必须定义图表或绘图的每个元素。中间级别的控制规范与Matplotlib库相同。这个级别允许用户控制每个图表和绘图的基本构建块。让我们了解以下示例。
示例 -
from bokeh.plotting import figure , output_file , show
from bokeh.sampledata.stocks import AAPL
aapl = np.array ( AAPL [ ' adj_close ' ] )
aaply_city = np.array ( AAPL [ ' city ' ] , dtype = np.city.temperature(F)
windows_size = 30
window = np.ones ( windows_Size ) / float ( windows _size )
pygal
Pygal是Python编程语言的库,也用于数据可视化。这个库也可以开发交互式图形,就像Bokeh和Plotly库一样。使用pygal库开发的交互式图可以嵌入到Web浏览器中。这个库具有将数据的输出图表作为SVG的能力。
SVGs适用于较小的数据集。因此,如果用户使用大型数据集并尝试创建具有大量数据点的图表,图表将在执行时遇到问题并变得缓慢。
在pygal库中,仅需几行代码即可绘制出漂亮的图表,因为它具有各种不同类型的图表的方法,并且还内置了样式。
示例 -
import pygal
box_plot = pygal.Box()
box_plot.title = ' V8 benchmark result '
box_plot.add ( ' Chrome ', [ 6394, 8211, 7519, 7217, 12463, 1659, 2122, 8606 ] )
box_plot.add ( ' Firefox ', [ 7472, 8098, 11699, 2650, 6360, 1043, 3796, 9449 ] )
box_plot.add ( ' Opera ', [ 3471, 2932, 4202, 5228, 5811, 1827, 9012, 4668 ] )
box_plot.add ( ' IE ', [ 42, 40, 58, 78, 143, 135, 33, 101 ] )
输出:
Plotly
Plotly是用于数据可视化的库。它还是一个开放平台,用户可以在线可视化和分析数据。
这个库用于开发交互式图和图表。它是一个开源绘图库,支持近40种独特的图和绘图类型,涵盖了广泛的代数、经济、地理3D和科学用户案例。
这个库用于绘制树状图、3D图和等高线图等图和图。
Python的Plotly库是建立在Plotly的JavaScript库之上的。
示例 -
import plotly.graph_objects as ply
# Add data
months = [ ' Jan ', ' Feb ', ' Mar ', ' Apr ', ' May ', ' June ', ' July ',' Aug ', ' Sep ', ' Oct ', ' Nov ', ' Dec ']
high_2010 = [ 31.5, 36.6, 48.9, 52.0, 68.1, 74.4, 75.5, 75.6, 69.7, 59.6, 44.1, 28.3 ]
low_2010 = [ 12.8, 21.3, 31.5, 36.2, 50.9, 55.1, 56.7, 57.3, 50.2, 41.8, 30.6, 14.9 ]
high_2015 = [ 35.5, 25.6, 42.6, 51.3, 70.5, 80.4, 81.5, 81.2, 75.0, 66.3, 45.1, 34.0 ]
low_2015 = [ 22.6, 13.0, 26.0, 35.8, 46.6, 56.7, 57.9, 60.2, 52.3, 47.5, 30.0, 22.6 ]
high_2020 = [ 27.8, 27.5, 36.0, 55.8, 68.7, 78.7, 77.5, 76.8, 73.1, 61.6, 44.3, 38.9 ]
low_2020 = [ 11.7, 13.3, 17.6, 34.5, 48.9, 57.0, 59.0, 57.6, 50.7, 44.2, 31.2, 28.1 ]
fig = go.Figure ()
# Create and style traces
fig.add_trace ( ply.Scatter( x = month, y = high_2020, name='High 2020',line = dict ( color = ' firebrick ', width = 4 ) ) )
fig.add_trace ( ply.Scatter( x = month, y = low_2020, name = ' Low 2020', line = dict ( color = ' royalblue ', width = 4 ) ))
fig.add_trace ( ply.Scatter( x = month, y = high_2015, name = 'High 2015', line = dict(color = 'firebrick', width = 4, dash = 'dash' ) # here in this code dash options also involve 'dash', 'dot', and 'dashdot' ) )
fig.add_trace (ply.Scatter ( x = month, y = low_2015, name = 'Low 2015', line = dict ( color = 'royalblue', width = 4, dash = 'dash' ) ) )
fig.add_trace (ply.Scatter ( x = month, y=high_2010, name='High 2010',
line = dict(color='firebrick', width=4, dash='dot')))
fig.add_trace (ply.Scatter ( x = months, y = low_2010, name='Low 2010', line = dict ( color = 'royalblue', width = 4, dash = 'dot') ) )
# Editing the layout of the graph
fig.update_layout ( title = 'Average High and Low Temperatures in NYC',
xaxis_title = ' Months ',
yaxis_title = ' Temperatures ( degrees F ) ' )
fig.show ()
输出:
Geoplotlib
Geoplotlib是Python语言的库,允许用户开发地图和绘制地理数据。它是一个工具箱的库,用于绘制不同类型的地图,如热力图、点密度图和分区图等。
要使用geoplotlib库,用户需要下载Pyglet,这是一种面向对象编程语言的接口。Geoplotlib库在OpenStreetMap瓦片上绘制地图上的点。
它还具有缩放和平移地图的功能,以便用户可以更具体地查看。这个库自动处理整个数据集的加载、地图的投影和地图瓦片的下载。它具有OpenGL的图形渲染功能。
示例 -
import geoplotlib
from geoplotlib.utils import BoundingBox
from geoplotlib.colors import ColorMap
import json
# find the unemployment rate of the particular county, and then change it to color
def get_color ( properties ):
key = str ( int ( properties [ ' STATE ' ] ) ) + properties [ ' COUNTRY ' ]
if key in unemployment:
return cmap.to_color ( unemployment.get ( key ) , .15, ' lin ' )
else:
return [ 0, 0, 0, 0 ]
with open (' sample /data /unemployment.json ' ) as fin:
unemployment = json.load ( fin )
cmap = ColorMap (' Blues ', alpha = 255, levels = 10 )
geoplotlib.geojson (' samples /data/ gz_2010_us_050_00_20m.json ' , fill = True , color = get_color , f_tooltip = lambda properties: properties[ ' NAME ' ] )
geoplotlib.geojson ( ' samples/ data/ gz_2010_us_050_00_20m.json ' , fill = False , color = [ 255 , 255 , 255 , 64 ] )
geoplotlib.set_bbox (BoundingBox.USA )
geoplotlib.show ( )
输出:
Gleam
Gleam用于Python编程语言中的数据可视化。它受到了R编程语言的Shiny包的启发。这个库用于可视化和分析仅使用Python脚本的交互式Web应用程序的数据。
因此,用户不需要学习任何其他编程语言,如JavaScript、HTML或CSS。Gleam可以与Python编程语言的任何数据可视化库一起使用。
使用gleam,用户需要开发基本的绘图,然后可以在其上构建不同的字段,并随后可以轻松地对数据进行过滤和排序。
示例 -
from wtforms import fields
from ggplot import *
from gleam import Page, panels
class ScatterInput ( panels.Inputs ) :
title = fields.StringField ( label = " Title of plot : " )
yvar = fields.SelectField ( label = " Y axis " ,
choices = [ ( " beef " , " Beef " ) ,
( " pork " , " Pork " ) ] )
smoother = fields.BooleanField ( label = " Smoothing Curve " )
输出:
Missingno
Missingno是Python编程语言的库,用于处理具有缺失值或混乱值的数据集。
这个库提供了一个小型工具集,易于使用并且灵活,可用于缺失数据可视化。它具有实用程序,可帮助用户快速查看完整数据集的视觉摘要。
用户可以使用过滤器和基于完整性的排序数据集,或使用热图或树状图来查找相关性。
示例 -
import missingno as mgno
%matplotlib inline
mgno.matrix ( collisions.samples ( 250 ) )
输出:
Leather
Leather是用于创建图表的Python编程语言库,适用于那些需要立即获取图表并不关心图表是否完美的用户。
这个库适用于各种类型的数据集。这个库将数据的输出图表作为SVG创建,以便用户可以以最佳质量测量图表。
Leather库是一个新的库,仍在进行一些文档编写工作。使用这个库创建的图表是基本的,但质量良好,粗略制作。
示例 -
import random
import leather
dot_dat = [ ( random.randint ( 0 , 10 ) , random.randint ( 0 , 10 ) for i in range ( 100 ) ]
def colorizer ( d ) :
return ' rgb ( %i , %, %i ) ' % ( d.x , d.y , 10 )
chart = leather.chart ( ' first ' )
Folium
Folium是一个库,使在交互式leaflet地图上可视化和分析数据变得非常容易。这个库具有来自不同平台的各种内置瓦片集,如OpenStreetMaps、Stamen和Mapbox。
Folium库易于绘制带有标记的地图。但是,Python编程语言的其他库也可以创建地图,如Altair、boken和Plotly。Folium库使用OpenStreetMap,给人一种Google地图的感觉,只需几行代码。
这个库还使得通过使用标记轻松添加其他用户的可能位置成为可能。
Folium库还具有各种插件,可以在地图上看到,包括与Altair、boken和Plotly相同的内容。这个库可以将HTML内容嵌入地图。
示例 -
import folium
M = folium.Map ( location = [ 26.987675 , 67.989654 ] )
m
输出:
这些是Python编程语言中用于数据可视化的一些重要库。每个库都具有其独特的优势和用例,根据您的需求和项目要求,可以选择最适合您的库。希望这个列表有助于您开始进行数据可视化并选择适当的工具。