Python数据可视化库
Python编程语言拥有各种类型的库,适用于各种项目。同样,Python还有各种用于数据可视化的库,以便用户能够以非常详细的方式理解数据集并进行适当的分析。
每个可视化库都有其自身的规格。使用特定的库来完成特定任务可以帮助用户以更简单和准确的方式完成任务。有些库比其他库更好用。在本文中,我们将讨论各个库的优缺点,以了解哪个库更适合数据可视化。
Python编程的数据可视化库如下:
- Matplotlib
- Ggplot
- Pygal
- Missingno
- Seaborn
- Plotly
- Gleam
- Leather
- Geoplotlib
- Bokeh
- Folium
Matplotlib
Matplotlib是一个用于绘制图形的库,适用于Python编程语言。它用于绘制2D数组。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紧密集成,用于数据集的数据结构。
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
Boken是一个Python库,也是基于图形语法的,就像ggplot一样。它只适用于Python语言。这个库不能在R编程语言中使用。这个库具有构建交互式、准备好在网络上使用的图表的能力,这些图表的输出可以是 JSON 对象、交互式网络应用程序或 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库 开发的交互式绘图可以在网络浏览器中运行。这个库能够将数据的输出图表呈现为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种独特的图表和绘图类型,涵盖了广泛的代数、经济、地理三维和科学用户案例。
这个库用于绘制诸如 树状图、三维图表和等高线图 之类的图表和绘图。
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
缺失值是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是一个库,它使得在交互式叶片地图上可视化和分析数据变得非常容易。该库具有来自不同平台的各种内置瓷砖集,如OpenStreetMaps、Stamen和Mapbox。
Folium库很容易使用标记绘制地图。然而,Python语言的其他库也可以创建地图,如Altair、boken和Plotly。Folium库使用OpenStreetMap,能够给人一种类似于谷歌地图的感觉,并且代码行数很少。
这个库还通过使用标记使得添加其他用户的可能位置变得轻松。
Folium库还有各种插件,可以在地图上看到,包括一个插件到Altair。
示例
import folium
M = folium.Map ( location = [ 26.987675 , 67.989654 ] )
m
总结
本文详细讨论了用于数据可视化和分析的不同类型的Python库。
我们还讨论了每个库的不同用途和目的,以及它们的独特功能,例如哪个库用于绘图和创建图表的种类,以及如何在数据集上实现更准确和快速的可视化输出。