Python可视化库解析
本文包含了一些较为流行的工具以及简介,安装方法(基于Linux系统,在一般情况下也适用于其他系统)。
大部分库都基于Python3,但不建议因此就删除Python2,因为还有一部分库如 geoplotlib,Mayavi2等是基于Python2。
Matplotlib是一个Python 2维绘图库,已经成为python中公认的数据可视化工具,通过Matplotlib你可以很轻松地画一些或简单或复杂地图形,几行代码即可生成线图、直方图、功率谱、条形图、错误图、散点图等等。
对于一些简单的绘图,特别是与IPython结合使用时,pyplot模块提供了一个matlab接口。你可以通过面向对象的接口或通过一些MATLAB的函数来更改控制行样式、字体属性、轴属性等
安装:
linux系统方法一:
sudo apt-get install python-dev sudo apt-get install python-matplotlib
方法二:
pip install matplotlibwindows系统
先下载对应的安装包pyproj和matplotlib
打开Anaconda Prompt,输入安装包所在路径,然后分别输入
pip install pyproj 1.9.5.1 cp36 cp36m win_amd64.whl #输入下载的pyproj文件名 pip install matplotlib_tests?2.1.0?py2.py3?none?any.whlmac os系统
方法一:
pip install matplotlib
方法二:
sudo curl -O https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py2.Seaborn
Seaborn是基于matplotlib产生的一个模块,专攻于统计可视化,可以和pandas进行无缝链接,使初学者更容易上手。相对于matplotlib,Seaborn语法更简洁,两者关系类似于numpy和pandas之间的关系。
安装:
sudo pip install seabornwindow系统
pip install seaborn3.HoloViews
HoloViews是一个开源的Python库,可以用非常少的代码行中完成数据分析和可视化,通过结合Bokeh提供的交互式小部件,快速呈现交互性和高维可视化,使HoloViews变得更加强大。
安装
方法一:
pip install HoloViews
方法二:
conda install -c ioam/label/dev holoviews
方法三:
git clone git://github.com/ioam/holoviews.git cd holoviews pip install -e
方法四:
点击下载安装
4.AltairAltair是Python的一个公认的统计可视化库。它的API简单、友好、一致,并建立在强大的vega - lite(交互式图形语法)之上。Altair API不包含实际的可视化呈现代码,而是按照vega - lite规范发出JSON数据结构。由此产生的数据可以在用户界面中呈现,这种优雅的简单性产生了漂亮且有效的可视化效果,且只需很少的代码。
数据源是一个DataFrame,它由不同数据类型的列组成。DataFrame是一种整洁的格式,其中的行与样本相对应,而列与观察到的变量相对应。数据通过数据转换映射到使用组的视觉属性(位置、颜色、大小、形状、面板等)。
安装
方法一:
pip install Altair
方法二:
conda install altair --channel conda-forge5.PyQtGraph
PyQtGraph是在PyQt4 / PySide和numpy上构建的纯 python的GUI图形库。它主要用于数学,科学,工程领域。尽管它完全是在python中编写的,但它对数字运算和Qt的GraphicsView框架的影响巨大,速度也非常快。
安装
方法一
pip install PyQtGraph
方法二
点击下载安装
6.ggplotggplot是基于R的ggplot2和图形语法的Python的绘图系统,实现了更少的代码绘制更专业的图形。
它使用一个高级且富有表现力的API来实现线,点等元素的添加,颜色的更改等不同类型的可视化组件的组合或添加,而不需要重复使用相同的代码,然而这对那些试图进行高度定制的的来说,ggplot并不是最好的选择,尽管它也可以制作一些非常复杂、好看的图形。
ggplot与pandas紧密联系。如果你打算使用ggplot,最好将数据保存在DataFrames中。
安装:
linux系统pip install numpy pip install scipy pip install statsmodels pip install ggplotwindow系统
下载ggplot安装包然后运行
pip install ggplot?0.11.5?py2.py3?none?any.whl7.Bokeh
Bokeh是一个Python交互式可视化库,支持现代化web浏览器展示(图表可以输出为JSON对象,HTML文档或者可交互的网络应用)。它提供风格优雅、简洁的D3.js的图形化样式,并将此功能扩展到高性能交互的数据集,数据流上。使用Bokeh可以快速便捷地创建交互式绘图、仪表板和数据应用程序等。
Bokeh能与NumPy,Pandas,Blaze等大部分数组或表格式的数据结构完美结合。
安装:
方法一:如果有配置anaconda的话使用以下命令(推荐)
conda install bokeh
方法二:
pip install numpy pip install pandas pip install redis pip install bokeh8.pygal
pygal是一种开放标准的矢量图形语言,它基于XML(Extensible Markup Language),可以生成多个输出格式的高分辨率Web图形页面,还支持给定数据的html表导出。用户可以直接用代码来描绘图像,可以用任何文字处理工具打开SVG图像,通过改变部分代码来使图像具有交互功能,并且可以插入到HTML中通过浏览器来观看。
安装:
pip install pygalwindow系统
命令类似于
python -m pip install --user pygal==1.7mac os系统
命令类似于
方法一:
pip install --user pygal==1.7
方法二:
pip install git+https://github.com/vispy/vispy.git9.VisPy
VisPy是一个用于交互式科学可视化的Python库,快速、可伸缩、且易于使用,是一个高性能的交互式2D / 3D数据可视化库,利用了现代图形处理单元(gpu)的计算能力,通过OpenGL库来显示非常大的数据集。
安装
pip install VisPy10.NetworkX
NetworkX是一个Python包,用于创建、操纵和研究复杂网络的结构、以及学习复杂网络的结构、功能及其动力学。
NetworkX提供了适合各种数据结构的图表、二合字母和多重图,还有大量标准的图算法,网络结构和分析措施,可以产生随机网络、合成网络或经典网络,且节点可以是文本、图像、XML记录等,并提供了一些示例数据(如权重,时间序列)。
NetworkX测试的代码覆盖率超过90%,是一个多样化,易于教学,能快速生成图形的Python平台。
安装
方法一:
pip install networkx
方法二:
点击下载安装
11.PlotlyPlotly的Python graphing library在网上提供了交互式的、公开的,高质量的图表集,可与R、python、matlab等软件对接。它拥有在别的库中很难找到的几种图表类型,如等值线图,树形图和三维图表等,图标类型也十分丰富,申请了API密钥后,可以一键将统计图形同步到云端。但美中不足的是,打开国外网站会比较费时,且一个账号只能创建25个图表,除非你升级或删除一些图表。
安装:
pip install plotly12.geoplotlib
Basemap和Cartopy包支持多个地理投影,并提供一些可视化效果,包括点图、热图、等高线图和形状文件。PySAL是一个由Python编写的空间分析函数的开源库,它提供了许多基本的工具,主要用于形状文件。但是,这些库不允许用户绘制地图贴图,并且对自定义可视化、交互性和动画的支持有限。
geoplotlib是python的一个用于地理数据可视化和绘制地图的工具箱,并提供了一个原始数据和所有可视化之间的基本接口,支持在纯python中开发硬件加速的交互式可视化,并提供点映射、内核密度估计、空间图、泰森多边形图、形状文件和许多更常见的空间可视化的实现。除了为常用的地理数据可视化提供内置的可视化功能外,geoplotlib还允许通过定义定制层来定义复杂的数据可视化(绘制OpenGL,如分数、行和具有高性能的多边形),创建动画。
安装:
pip install geoplotlib13.folium
folium是一个建立在Python系统之上的js库,可以很轻松地将在Python中操作的数据可视化为交互式的单张地图,且将紧密地将数据与地图联系在一起,可自定义箭头,网格等HTML格式的地图标记。该库还附有一些内置的地形数据。
安装
方法一:
pip install folium
方法二:
conda install folium
方法三:
点击下载安装
14.GleamGleam允许你只利用Python构建数据的交互式,生成可视化的网络应用。无需具备HTML CSS或JaveScript知识,就能使用任一种Python可视化库控制输入。当你创建一个图表的时候,你可以在上面加上一个域,让任何人都可以实时地玩转你的数据,让你的数据更通俗易懂。
安装:
pip install Gleam15.vincent
Vincent是一个很酷的可视化工具,它以Python数据结构作为数据源,然后把它翻译成Vega可视化语法,并且能够在d3js上运行。这让你可以使用Python脚本来创建漂亮的3D图形来展示你的数据。Vincent底层使用Pandas和DataFrames数据,并且支持大量的图表—-条形图、线图、散点图、热力图、堆条图、分组条形图、饼图、圈图、地图等等。
安装
pip install vincent16.mpld3
mpld3基于python的graphing library和D3js,汇集了Matplotlib流行的项目的JavaScript库,用于创建web交互式数据可视化。通过一个简单的API,将matplotlib图形导出为HTML代码,这些HTML代码可以在浏览器内使用。
安装
方法一:
pip install mpld3
方法二:
点击下载安装
17.python-igraphPython界面的igraph高性能图形库,主要针对复杂的网络研究和分析
安装
方法一:
pip install python-igraph
方法二:
点击下载安装
18.missingno没有高质量的数据,就没有高质量的数据挖掘结果,当我们做监督学习算法,难免会碰到混乱的数据集,缺失的值,当缺失比例很小时,可直接对缺失记录进行舍弃或进行手工处理,missingno提供了一个小型的灵活的、易于使用的数据可视化和实用工具集,用图像的方式让你能够快速评估数据缺失的情况,而不是在数据表里面步履维艰。你可以根据数据的完整度对数据进行排序或过滤,或者根据热度图或树状图来考虑对数据进行修正。
missingno 是基于matplotlib建造的一个模块,所以它出图速度很快,并且能够灵活的处理pandas数据。
安装:
方法一:
pip install missingno
方法二:
点击下载安装
19.Mayavi2Mayavi2是一个通用的、跨平台的三维科学数据可视化工具。可以在二维和三维空间中显示标量、向量和张量数据。可通过自定义源、模块和数据过滤器轻松扩展。Mayavi2也可以作为一个绘图引擎,生成matplotlib或gnuplot脚本,也可以作为其他应用程序的交互式可视化的库,将生成的图片嵌入到其他应用程序中。
安装
pip install mayavi20.Leather
Leather一种可读且用户界面友好的API,新手也能快速掌握。图像成品非常基础,适用于所有的数据类型,针对探索性图表进行了优化,产生与比例无关的SVG图,这样在你调整图像大小的时候就不会损失图像质量
安装
方法一:
pip install leather
方法二:
点击下载安装
结语:在 Python 中,将数据可视化有多种选择,因此何时选用何种方案才变得极具挑战性。
如果你想做一些专业的统计图表,我推荐你使用Seaborn,Altair;数学,科学,工程领域的学者就选择PyQtGraph,VisPy,Mayavi2;网络研究和分析方面,NetworkX,python-igraph会是一个不错的选择。
地理投影就选geoplotlib,folium;评估数据缺失就选missingno;有了HoloViews再也不用为高维图形犯愁;如果你不喜欢花俏的修饰,那就选择Leather。
如果你是一名新手但有MATLAB基础,matplotlib会很好上手;有R基础的就选ggplot;如果你是新手或懒癌晚期者,Plotly将会是一大福音,它提供了大量图表集可供你选择与使用。