原始问题

python 可视化工具有很多种比如 matplotlib,pyecharts,哪种最好用,因人而异。但是由于数据分析工作需求有很多共性,因此还是能基于这些共性找出 “最好用” 的 python 工具。哪些库是坑,也可以吐槽一下。例如:有 bug,更新维护慢,对 python 支持不友好,支持图表类型比较少

请根据:

1 代码量:绘制相同图表所需代码量

2 、图表数量:支持绘制图表的种类(例如是否支持三维绘图、饼图)

3 、数据格式:接收数据是否需要二次处理

4 、参考资料:互联网上相关中文文档 / 教程 / 讨论等资料的数量、质量。或存在像动物园,图灵系列那样的优质书籍

5 、交互:生成的图标是否可以交互

6 、调整复杂度:对图标进行调整的复杂程度

来评价。

如果愿意可以透露一下自己目前用的是哪一款工具,以及最主要的理由。也可以对比一下各个工具的优劣,多谢!

最佳回答

  • matplotlib:也许它不是最早的,也不是现在最强大的,但无疑是使用最多最顺手的一个 文档支持非常好,各种常见图形也都支持。交互不是不可以做,但是交互和动画这一块写起来会麻烦些

  • pyecharts:很适合中国国情。我也不知道为什么,就感觉默认的色彩搭配饱和度相对高,虽然不是大红大绿那种的,但就是感觉有种“中国风”…… 此外还有专门的中国地图支持,这个比较难得。因为是从 js 库过来的,个人感觉调节的细致度相对原生 js 库要少一些,文档支持相对也少一些。但是平时创建一般图形基本还是够了

  • seaborn 等强化 matplotlib 的库:用下来还是觉得 matplotlib 顺手,我宁可自己调一个颜色和其他风格传到 rcParams 里面去

  • plotly: 库是个好库,但是文档支持一言难尽…… api 的部分写得和面条代码一样…… 而且 api 没有跳转到某个例子的链接,所以会出现看完一个命令但不知道会有什么效果的情况…… 功能上很强大,除了常规图,还能绘表(这个很多库没有),还有 和弦图 这种花活。但是写起来其实我觉得不是很友好,因为 api 太碎,就不得不用 paraA=dict{paraB=dict{paraC=x, paraD=y}, paraE=z} 这种字典套字典的写法……参数多的时候有点烦(比如绘制一个动画,plotly 那个写法我真没看懂……) 幸好 3.0 之后,plotly 整合了一个叫 plotly_express 的 第三方的第三方库。这个对于很多常见图,可以直接传递 DataFrame 的列名 来绘图,比上面那个字典套字典的方便太多了。不过这个强化包,也是因为文档较少。如果你要画它例子里面没有的东西,那就要花一番功夫了

  • dash: 基于 plotly 的库,更全面,而且后台是 flask,所以甚至可以写个模版搭简单的小网站。同样文档支持相对少,而且要用好 dash (比如缓存和登录验证),还需要 flask 的相关知识,还要额外学习

  • streamlit: 看了下介绍觉得是个非常牛的东西,不过最近刚装上,还没来得及深度使用,就不评论了