可视化图表介绍与绘法
Python经典可视化库。
Python数据分析库的“三驾马车”之一,和numpy、pandas协同良好。
从关系图就可以看到matplotlib的影响力,生态繁荣,
其强大性和野心在于:Matplotlib tries to make easy things easy and hard things possible.
Matplotlib可视化代码框架:
fig, ax = plt.subplots()
ax.plot(df['x'],df['y'])
通过图元层面的接口,支持多种主题效果,统计图、科学函数、动态效果、用户交互,都不在话下,但要实现一个定制的统计图、要流畅的动效和交互、要浏览器端交互与分享,需要自己处理很多细节,因此在面对这方面需求时,其他库就想取而代之。
详细绘图的写法例子:
fig,ax= plt.subplots()
rects=ax.bar(df['x'],df['y'])
ax.set_ylim(0,100)
ax.set_ylabel('Month IC')
官方文档:http://matplotlib.org
对Matplotlib的高级封装可视化库。
隐去一些数据转换、处理的细节,更容易出统计图,擅长统计数据的可视化。
包含四类统计图的接口,具体为:
import seaborn as sns #导入seabron库
tips = pd.read_excel('tips.xlsx') #dataframe数据
sns.relplot(x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
data=tips)
seaborn官方文档:http://seaborn.pydata.org/index.html
图形语法集大成库ggplot2在Python的实践,项目叫ggpy,库名叫ggplot。
数据+图形映射+坐标系=>出图
ggpy(ggplot)官方文档:http://yhat.github.io/ggpy/
ggplot2库的另一Python实现,有更多优化
plotnine官方文档:https://github.com/has2k1/plotnine
pandas内置简单绘图模块,基于Matplotlib API
pandas-plot官方文档:https://pandas.pydata.org/docs/reference/plotting.html
Python地理数据处理和可视化库
cartopy官方文档:http://scitools.org.uk/cartopy/
matplotlib下的地图可视化模块
basemap官方文档:http://matplotlib.org/basemap/
物理材料、体密度分布的可视化
YT官方文档:http://yt-project.org
优秀的关系数据处理和可视化库
networkx官方文档:https://networkx.github.io
一个用于关系数据可视化的包
graphviz官方文档:https://graphviz.readthedocs.io/en/stable/
一个用来对图结构进行操纵和统计分析的Python包,有很强的可视化接口。
graph-tool官方文档:https://graph-tool.skewed.de
高维度数据可视化包,可以进行3D人体组织、天文学的可视化
glueviz官方文档:http://www.glueviz.org/en/stable/
Scikit-learn包提供的可视化接口,用到了Matplotlib
scikit-plot官方文档:https://github.com/reiinakano/scikit-plot
结合了Scikit-Learn接口和Matplotlib的机器学习可视化库;能集成地把一些机器学习模型的结果画成统计图。
yellowbrick官方文档:http://www.scikit-yb.org/en/latest/
开源的DataFrame库,它可以对表格数据集进行可视化、探索、分析,致力于处理GB级的表格数据。
Vaex官方文档:http://vaex.astro.rug.nl
Data-Driven Documents
d3js官方文档:https://d3js.org
一个不错的统计数据可视化库
altair官方文档:https://altair-viz.github.io
一个高封装的交互可视化库
vega-lite官方文档:https://vega.github.io/vega-lite/
一种可视化语法,通过json进行描述和分享
vega官方文档:https://vega.github.io/vega/
方便处理pandas数据的vega-lite封装库
PdVega官方文档:https://altair-viz.github.io/pdvega/
一个Vega的Python翻译版,2016年之后就不再更新,github上建议去了解altair。
vincent官方文档:https://github.com/wrobstory/vincent
通过d3把matplotlib接口移植到web端
mpld3官方文档:https://mpld3.github.io
一个对d3封装的Python可视化库,活跃于2012年,4年前github就不再更新
d3py官方文档:https://github.com/mikedewar/d3py
一个对d3封装的Python可视化库,目前网站国内访问不了了
d3po官方文档:http://www.d3po.org
前端
javascript官方文档:https://www.javascript.com/
为现代浏览器而生的交互可视化库,pydata力推
bokeh官方文档:http://bokeh.pydata.org/en/latest/
对大规模数据进行转换聚合的库
官方文档:https://github.com/bokeh/datashader
在bokeh基础上发展起来的,采用另一种可视化哲学,致力于让数据分析和可视化更无缝衔接更简单
holoviews官方文档:http://holoviews.org
对holoviews的进一步封装
hvplot官方文档:https://github.com/holoviz/hvplot
和heloviews类似,目标在处理地理数据上
geoviews官方文档:http://geoviews.org/
基于bokeh封装,致力于让数据科学家更容易使用
chartify官方文档:https://chartify.readthedocs.io/
基于图形语法范式的Python可视化库
官方文档:https://github.com/bqplot/bqplot
x=['Mon.','Tue.','Wed.','Thu.','Fri.']
y=[76,37,90,60,50]
from bqplot import pyplot as plt
plt.figure(title='bqplot 折线')
plt.plot(x,y)
plt.show()
优秀的可视化库,plotly_exprress进一步提升了plotly的易用程度
plotly官方文档:https://plot.ly
对plotly的进一步封装,方便pandas处理数据后的可视化
cufflinks官方文档:https://github.com/santosjorge/cufflinks
有多套语言接口的web可视化工具
lightning官方文档:http://lightning-viz.org
用到WebGL对jupyter支持良好的三维可视化包
ipyvolume官方文档:https://github.com/maartenbreddels/ipyvolume
另一个对leaflet进行封装的地图可视化库
ipyleaflet官方文档:https://github.com/ellisonbg/ipyleaflet
对leaflet进行封装的地图可视化库
folium官方文档:https://python-visualization.github.io/folium/
对threejs封装的Python三维可视化库
pythreejs官方文档:https://github.com/jovyan/pythreejs
一个基于canvas的简洁的Python可视化库,图形简洁,可配置性强
toyplot官方文档:http://toyplot.readthedocs.io/en/stable/
对echarts进行封装的优秀Python可视化库
pyecharts官方文档:https://pyecharts.org
漫画手绘效果统计图可视化库
官方文档:https://github.com/chenjiandongx/cutecharts
可视化框架
官方文档:http://pyopengl.sourceforge.net
一个科学领域可视化库,全面,强大。
vispy官方文档:http://vispy.org/
用面向对象方法对一维到四维数据可视化的Python库
visvis官方文档:https://github.com/almarklein/visvis
一个基于OpenGl的高级封装可视化包,5年前就不再更新了;
galry官方文档:https://github.com/rossant/galry
一个速度快优雅的科学可视化包
glumpy官方文档:http://glumpy.github.io
3维科学可视化包
mayavi官方文档:http://code.enthought.com/projects/mayavi/
一个跨平台的多媒体处理和游戏库;能通过接口绘制一些图形进行可视化;
pyglet官方文档:http://pyglet.readthedocs.io
跨平台通用可视化框架,也有Julia和C语言的接口;挺全面的,除了绘制统计图外,对动画、音频、3维效果的处理也挺厉害。
官方文档:http://gr-framework.org
其他和以上框架联系不大的可视化库
基于SVG,枚举了各种常用不常用的图表类型,可以画简单的地图,可以生产迷你图
pygal官方文档:http://pygal.org/en/stable/
Python下的通用可交互2维可视化包;
chaco官方文档:http://docs.enthought.com/chaco/
一个基于PyQt的图形和GUI库,对2D和3D可视化都支持良好。
PyQtGraph文档:http://pyqtgraph.org
在jupyter中用字符绘制基础图形的库,无其他库依赖,可以绘制条形图、散点图和直方图
chart官方文档:https://github.com/maxhumber/chart
一行代码探索数据集的包
sweetviz官方文档:https://github.com/fbdesignpro/sweetviz
lyndon-2020