专栏名称: 数据STUDIO
点击领取《Python学习手册》,后台回复「福利」获取。『数据STUDIO』专注于数据科学原创文章分享,内容以 Python 为核心语言,涵盖机器学习、数据分析、可视化、MySQL等领域干货知识总结及实战项目。
目录
相关文章推荐
51好读  ›  专栏  ›  数据STUDIO

最强合集!Python 数据可视化工具,你都用过哪些?

数据STUDIO  · 公众号  ·  · 2025-02-19 10:30

正文

请到「今天看啥」查看全文



Python 的丰富软件包生态是其最大优势,但也让用户面临选择困难: 我是否在使用最好的数据可视化工具? 经过 10 年的思考,我决定分享我的见解,并用数据和图表支持我的观点,希望能成为这一主题的最佳参考。

上图展示了 GitHub 上按星号数量划分的 Python 包规模(主要用于装饰)。接下来,我们将通过决策树、量化指标和详细分析,帮助你选择最适合的工具。

如何选择?

如果你只想快速获取建议,可以参考以下决策树。但建议继续阅读,尝试不同选项。

这个简单的决策树帮助你选择 Python 数据可视化包。请勿仅依赖此图做决定,建议多尝试不同工具。

选择工具的关键在于你的需求:静态可视化(如文章插图)还是动态可视化(如网站或仪表板)。数据类型也很重要,许多工具专注于表格数据,而地理空间或图形数据则需要专门工具。

数据驱动的指标

你不想在已停止维护的包上浪费时间,同时可能相信开发者的集体智慧会引导出更有用的工具。以下指标量化了这些概念。

回顾过去几年 Python 软件包索引的下载量变化,几乎每个软件包看起来都在增长。

2020 年至 2024 年各包的 PyPI 下载量(对数尺度)
2020 年至 2024 年各包的 PyPI 下载量(对数尺度)

尽管下载量跨越多个数量级,但需注意,下载可能源于用户需求或其他包的依赖。例如,Seaborn 的下载量永远不会超过 Matplotlib,因为 Seaborn 依赖 Matplotlib。Altair 的下载量激增可能部分归因于它是 Streamlit 的依赖项。

GitHub 的 fork 和 star 数量是衡量项目受欢迎程度的指标,如下表所示,它们之间存在一定相关性。此外,贡献者数量和提交历史也能反映项目健康状况,Seaborn 的表现让我有些担忧。

十个 Python 数据可视化包的多指标热图
十个 Python 数据可视化包的多指标热图

以下是针对这十个包的详细分析和评价。

Matplotlib——经典之选

matplotlib/matplotlib [1] PyPI : Matplotlib [2]

一句话推荐 :如果你只需要一个包来制作静态可视化,选它。

我的看法 :Matplotlib 已有 22 年历史,尽管其语法复杂,但它依然是下载量最高的 Python 数据可视化包。它不仅支持 Seaborn 等工具,还能让你实现任何静态图,只要你愿意投入精力。

Bokeh——美丽但复杂

bokeh/bokeh [3] PyPI : Bokeh [4]

一句话推荐 :如果你需要完全控制动态可视化,且不介意多写代码,选它。

我的看法 :Bokeh 能制作漂亮的交互式图表,但需要大量代码和示例学习。不过,其稳定性和文档近年来大幅提升,值得一试。

Plotly——企业首选

plotly/plotly.py [5] PyPI : Plotly [6]

一句话推荐 :如果你需要快速制作高度动态的可视化,选它。

我的看法 :Plotly 的 API 简单且能生成出色的交互图表。虽然开源,但主要由 Plotly 公司维护。

Seaborn——统计友好

mwaskom/seaborn [7] PyPI : Seaborn [8]

一句话推荐 :如果你需要统计可视化,选它。

我的看法 :Seaborn 提供美观的统计图表,且易于使用。如果不够,还可以用 Matplotlib 微调。但贡献者数量在 2024 年停滞,令人担忧。

Altair——优雅的语法

vega/altair [9] PyPI : Altair [10]

一句话推荐 :如果你注重 API 的一致性和优雅性,选它。

我的看法 :Altair 基于 Vega-Lite 的高级图形语法,提供清晰的思维模型,支持交互和静态图表,是一个强大的竞争者。

Plotnine——R 风格的语法

has2k1/plotnine [11] PyPI : Plotnine [12]

一句话推荐 :如果你喜欢 R 的 ggplot2,但需要用 Python,选它。

我的看法 :Plotnine 将 ggplot2 引入 Python,下载量近年来激增,可能不仅仅是怀旧。

Holoviews——多后端集成

holoviz/holoviews [13] PyPI : Holoviews [14]

一句话推荐 :如果你需要高效生成静态和动态可视化,选它。

我的看法 :Holoviews 通过元数据自动化可视化,支持 Matplotlib 和 Bokeh 渲染,但 hvPlot 的抽象级别更高。

Hvplot——高级集成

holoviz/hvplot [15] PyPI : Hvplot [16]

一句话推荐 :如果你需要静态和动态可视化,且代码简洁,选它。

我的看法 :Hvplot 提供高级 API,支持多后端,但调试时可能需要深入研究多个库的文档。

Datashader——大数据集

holoviz/datashader [17] PyPI : Datashader [18]

一句话推荐 :如果你需要可视化海量数据,选它。

我的看法 :Datashader 擅长将大数据集转化为精美可视化,但需要理解其管道概念。

Pyvista——3D 可视化

pyvista/pyvista [19] PyPI : Pyvista [20]

一句话推荐 :如果你需要 3D 可视化,选它。

我的看法 :PyVista 是 3D 和科学可视化的代表,足够 Python 化,不仅仅是 VTK 的集成。

参考资料

[1]

matplotlib/matplotlib: https://github.com/matplotlib/matplotlib

[2]

Matplotlib: https://pypi.org/project/Matplotlib

[3]

bokeh/bokeh: https://github.com/bokeh/bokeh

[4]

Bokeh: https://pypi.org/project/Bokeh

[5]

plotly/plotly.py: https://github.com/plotly/plotly.py

[6]

Plotly: https://pypi.org/project/Plotly

[7]

mwaskom/seaborn: https://github.com/mwaskom/seaborn

[8]

Seaborn: https://pypi.org/project/Seaborn

[9]

vega/altair: https://github.com/vega/altair

[10]

Altair: https://pypi.org/project/Altair

[11]

has2k1/plotnine: https://github.com/has2k1/plotnine

[12]

Plotnine: https://pypi.org/project/Plotnine

[13]

holoviz/holoviews: https://github.com/holoviz/holoviews

[14]

Holoviews: https://pypi.org/project/Holoviews

[15]

holoviz/hvplot: https://github.com/holoviz/hvplot

[16]

Hvplot: https://pypi.org/project/Hvplot

[17]

holoviz/datashader: https://github.com/holoviz/datashader

[18]

Datashader: https://pypi.org/project/Datashader

[19]

pyvista/pyvista: https://github.com/pyvista/pyvista

[20]

Pyvista: https://pypi.org/project/Pyvista


🏴‍☠️宝藏级🏴‍☠️ 原创公众号『 数据STUDIO 』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括 可戳 👉 Python MySQL 数据分析 数据可视化 机器学习与数据挖掘 爬虫 等,从入门到进阶!

长按👇关注- 数据STUDIO -设为星标,干货速递







请到「今天看啥」查看全文