为了系统分析Python可视化生态,便于大家全面考量各类工具的目标领域、长短板和绘图语言,”选择适合你的Python可视化工具“一篇变成了三续,有点长了。但有个好处,为大家查找、选择需要的工具提供了完整的索引。
本篇将:
- 对如何选择适合你的Python可视化工具提出一些建议;
- 给出我使用的Python可视化工具组合。
依据什么选择Python可视化工具
你擅长的语言
根据前面的总结,57个在维护的Python可视化工具基于下述语言开发的:
- Python
- javascript
- D3.js
- OpenGL
- 其它,如XML等
你最擅长的语言,应该是你选择工具时第一个考量因素。因为阅读源代码、示例代码是最好的学习途径,选择用你最擅长的语言开发的工具,对你理解工具开发者的设计思想、加快熟练使用该工具非常有好处。
如果你不熟悉该工具的开发语言,学习的过程将是非常痛苦的。
比如我是草根一枚,掌握得较好的就是Python语言,对javascript, D3.js等都是幼儿园小班的水平,我当然要围绕前面的Python可视化工具全景图右上角区域来选择了。我阅读matplotlib的源代码就较容易,在看官方文档时,遇到一时难以理解的内容时,去看看源代码,经常对理解官方文档带来帮助。
而我尝试去学习Bokeh,因为很难读懂(不要说理解了)而很困难。
你绘图的主要用途是什么?
你绘制的图形主要用来做什么?
问自己两个问题:
- 交互式绘图很重要吗?
- 肯定是要嵌入到Web中吗?
你就很清楚,你是否真的需要交互式、动态绘图,是否需要较强的Web支持了。就不会选择一些看起来很酷,但并一定是你真正需要的工具了。
多数人绘制的图形是嵌入到平面媒体,如发表论文,写书,发表一般的网络文章,当然应该在专注于静态、2D绘图的工具中选择。
你的研究领域
如果你的研究领域很特殊,当然要有针对性的选择了。比如:你研究物理空间、天文、地理,你当然要在SciPy组中选择。
一个核心,两个辅助
基于上述三点,选择一个适合你的主工具,围绕这个工具针对你的一些特殊需要再选择1-2个辅助工具。
如果你最擅长的是Python语言,主要是静态2D绘图,因为机器学习的需要常绘制网络图。
你选择了最核心的matplotlib(这很好),你可以再了解一下基于matplotlib的networkx。
忠告:尺有所短,寸有所长。Python可视化工具也是如此,永远不要希望有一款万能的工具,更不要为了看起来很酷的功能而选择一款工具。
你真的要绘制这样的图吗?
我的工具箱
比较起来,我最擅长的是Python语言,我绘制的图形主要是嵌入平面文章中,所以我的工具搭配是
- jupyter lab,练习、测试的主战场;
- vscode,微软的开源Python编辑器;
- Matplotlib,主攻的Python绘图库;
- graphviz,辅助工具,绘制简单的网络结构图。
**画外音:**PS等图片后期处理软件有时也是必须的。
下一篇,数据可视化应该避免的误区