原文:
www.kdnuggets.com/2019/12/python-alternative-ggplot2.html
R 的忠实用户知道 ggplot2 可以简化处理探索性数据分析和数据可视化的过程。它使得创建优雅而强大的图形变得非常简单,帮助解读数据中的潜在关系。
Python 的绘图库,如 matplotlib 和 seaborn,确实允许用户创建优雅的图形,但相比于 R 中 ggplot2 的简单、可读和分层的方法,它们缺乏标准化的语法来实现图形语法,使得在 Python 中实现起来更加困难。
1. 谷歌网络安全证书 - 快速进入网络安全职业道路。
2. 谷歌数据分析专业证书 - 提升您的数据分析水平
3. 谷歌 IT 支持专业证书 - 支持您组织的 IT
这个问题的答案在于 Plotnine。
我会说这种风格与 R 中的 ggplot2 99% 相似。主要区别在于你将会看到的几个简短示例中的括号用法。使用 plotnine 的最佳收获之一是输出基本上与 R 中得到的相同。视觉上没有明显差异。
我们可以使用许多**plotnine 的 API** 来制作我们的图表。
(
ggplot(mtcars, aes(‘wt’, ‘mpg’, color=’factor(cyl)’))
+ geom_point()
+ labs(title=’Miles per gallon vs Weight’, x=’Weight’, y=’Miles per gallon’)
+ guides(color=guide_legend(title=’Number of Cylinders’)) )
ggplot 在 R 中的主要卖点之一是能够 FACET。我们也有许多选项来用一行代码绘制数据的子集。
(ggplot(mtcars, aes(‘wt’, ‘mpg’, color=’factor(cyl)’))
+ geom_point()
+ labs(title=’Miles per gallon vs Weight’,x=’Weight’, y=’Miles per gallon’)
+ guides(color=guide_legend(title=’Cylinders’))
+ facet_wrap(‘~gear’)
)
只需在前面的代码末尾添加 facet_wrap(‘~gear’)
我们现在就有了一个分面图。 这实际上比使用 Matplotlib 和 Seaborn 简单得多。Matplotlib 需要你为每一组变量创建一个单独的图表(例如,上面的图表有 3 个图表,所以你必须创建 3 个图表),而 Seaborn 比 Matplotlib 更简单,但需要使用不同的命令,这可能会让缺乏经验的用户感到困惑。
如果没有正确格式化这些可视化图形,那么创建它们是没有意义的。
(ggplot(mtcars, aes(‘wt’, ‘mpg’, color=’factor(cyl)’, size = ‘hp’))
+ geom_point()
+ theme_bw()
+ labs(title=’Miles per gallon vs Weight’,x=’Weight’, y=’Miles per gallon’)
+ guides(color=guide_legend(title=’Cylinders’))
+ facet_wrap(‘~gear’)
)
通过添加**size = ‘hp’**
,我们可以从数据中获得另一个见解(马力的数量),并使用**theme_bw()**
为图形提供一个标准化的格式和一个简单的主题。theme_bw()
是任何使用 ggplot2 的 R 用户都会知道的一个主题命令。它基本上是进行其他主题和格式实验之前使用的默认主题。
查看我们如何将 ipywidgets 与 Plotnine、Jupyter Notebook 和 JupyterLab 集成。
当我们深入研究时,我们会发现 Plotnine 提供了我们从 R 中的 ggplot2 获得的简单 API 和令人惊叹的视觉效果。Seaborn 能够用一行代码格式化图形,但 Matplotlib 则不能。Seaborn 在某种程度上确实与 Plotnine 和 ggplot2 有相似之处,但其易于解读的语法赋予了它独特的卖点,使得切换变得容易。
相关:
-
Vega-Lite: 交互式图形的语法
-
如何在 Python(和 R)中可视化数据
-
理解箱线图