Python 可视化工具全景图 R的可视化工具包ggplot2为R的流行起到了很好的推动作用。常有人拿这个与Python作比较,认为可视化是Python相对于R的短板。 其实我以为,恰恰是Python的可视化生态过于“丰富”,丰富到有点让人无所适从:
所以,本篇将:
Python工具知多少?根据PyViz的登记,目前共有 68 个Python可视化工具(库、包)。其中有11个的作者已不再开发或认可。仍在开发维护的工具有57个之多。前面的图展示了其中目前仍在维护的主要工具。 这么多可视化工具,初看起来确实令人生畏。 对这些工具进行一下归类比较,有助于我们做出合适的选择。 计算机绘图世界的等级制度注意:这是一个草根为自己总结的! 一级,硬件级计算机绘图世界有两个接近硬件级的底层库,或者叫规范、标准:
一般的显卡制造商基于它们编写显卡(图形)驱动程序。 二级,程序开发语言级程序开发语言,在底层调用相对低级的图形库,提供一套高级一点的API供程序员使用。如,Python中的PyQtGraph,2D图形使用Qt的GraphicsView框架,3D图形使用OpenGL。 一般情况下,程序开发人员才会直接使用它们。 三级,绘图软件(库、包)级绘图时直接使用的库和包,如matplotlib,调用Python的PyQtGraph。但一般使用人员都是直接使用matplotlib提供的API接口(函数,对象等)。 需要绘图、可视化的人员使用;做二次开发的人员使用。 四级,二次开发和封装在三级库包的基础上再开发、封装,如基于matplotlib做二次开发、封装的plotnine、seaborn等。实际上matplotlib的pyplot模块也就是mpl核心对象的封装函数集。 主要用于快速绘图、可视化工作。 IEEE 的SciVis 和 InfoVis 组IEEE组织习惯于将Python可视化工具分为两个组: 一是:Scientific Visualization (SciVis) ,科学可视化。主要基于OpenGL图形标准,提供三维或四维物理过程的图形密集可视化,侧重于工程和科学环境。常见的这类Python可视化工具有VisPy, glumpy, GR, Mayavi等。 如使用 VisPy 库绘制螺旋星系图。 螺旋星系图 二是:Information Visualization (InfoVis) ,信息可视化。专注于任意空间中信息的可视化,而不一定是三维物理世界。InfoVis组的库使用打印页面或计算机屏幕的两个维度来抽象、解释空间,通常使用轴和标签。常见的Python这类库有,pandas, NetworkX, Cartopy,ggplot, plotnine, HoloViews, GeoViews,seaborn等。 InfoVis组的细分我等草根很少需要去使用SciVis组的可视化工具,99%都在InfoVis组选择。 可以根据库的基础语言、等级、应用场景等,InfoVis组的库可以进一步细分为若干个子组:
根据等级关系分类根据库在Python可视化生态中所处的位置、领域、状态,可以将68个Python可视化工具分为以下12类: 其中休眠状态的库有11个,原则上不应选择这些库。 为了有一个合适的篇幅,将在下篇中接着讨论:
|
|
来自: 星光闪亮图书馆 > 《Python学习》