Plotnine
摘要
Plotnine是一个基于图形语法的Python数据可视化包,提供类似于R语言ggplot2的API,用于创建可自定义的统计图表。
暂无内容
查看缓存全文
缓存时间: 2026/06/23 10:42
# Plotnine
来源:https://plotnine.org/
### Python 的图形语法
Plotnine 是一个基于图形语法的 Python 数据可视化包,图形语法是一套用于描述和构建图形的连贯系统。其语法类似于大获成功的 R 包 ggplot2 (https://ggplot2.tidyverse.org/)。
下面通过可视化 Anscombe 四重奏(Anscombe's Quartet)来探索 Plotnine 的特性并体验典型的工作流程——这四个数据集具有不同的分布,但描述性统计却几乎完全相同,它们可以说是数据可视化的最佳论据。右侧可以看到最终结果。
### 快速上手
使用 Plotnine,你可以用一行代码创建即兴图表。
``
from plotnine import *
from plotnine.data import anscombe_quartet
ggplot(anscombe_quartet, aes(x="x", y="y")) + geom_point()
``
数据包含两个连续变量,所以我们先绘制一个基本的散点图。
目前这张图意义不大;我们需要一种方法来区分四个数据集。
### 合理的默认设置
图例、标签、刻度、调色板——许多元素会根据数据自动添加。
通过按所属数据集对每个点着色,图形会自动获得图例,颜色也是自动选择的。不过别担心,后面会看到一切都可以调整。
目前仍然比较混乱,让我们换一种方式。
### 声明式分组
任何数据可视化都可以跨多个面板重复,而无需编写 for 循环。
这样好多了。面板划分使得颜色变得多余,所以我们需要调整这一点。
### 可视化拥有图层
数据和列映射会被继承,但每个图层可以单独修改。
这些带有趋势线的散点图清晰地支持了 Anscombe 的观点:不同分布的数据集可能具有相同的描述性统计。
在做探索性数据分析时,这张图可能已经足够;但若要发布,你可能希望进一步自定义。
### 覆盖任何默认设置
你看到的任何元素都可以调整。
``
(
ggplot(anscombe_quartet, aes("x", "y"))
+ geom_point(color="sienna", fill="darkorange", size=3)
+ geom_smooth(method="lm", se=False, fullrange=True,
color="steelblue", size=1)
+ facet_wrap("dataset")
+ scale_y_continuous(breaks=(4, 8, 12))
+ coord_fixed(xlim=(3, 22), ylim=(2, 14))
+ labs(title="Anscombe's Quartet")
)
``
这里我们更改了大小和颜色,优化了刻度,并添加了标题。
### Plotnine 的终极自定义
最后,自定义主题以匹配你的个人风格或组织品牌。
``
(
ggplot(anscombe_quartet, aes("x", "y"))
+ geom_point(color="sienna", fill="orange", size=3)
+ geom_smooth(method="lm", se=False, fullrange=True,
color="steelblue", size=1)
+ facet_wrap("dataset")
+ labs(title="Anscombe's Quartet")
+ scale_y_continuous(breaks=(4, 8, 12))
+ coord_fixed(xlim=(3, 22), ylim=(2, 14))
+ theme_tufte(base_family="Futura", base_size=16)
+ theme(
axis_line=element_line(color="#4d4d4d"),
axis_ticks_major=element_line(color="#00000000"),
axis_title=element_blank(),
panel_spacing=0.09,
)
)
``
至此,我们从一行代码开始,逐步改进并自定义了数据可视化。
想知道如何用自己的数据创建这类可视化吗?下一节我们将介绍如何安装 Plotnine。
相似文章
ggsql:面向 SQL 的图形语法
ggsql 是一款 Alpha 版本工具,它将图形语法的可视化能力引入 SQL,允许用户在 Quarto、Jupyter、Positron 和 VS Code 中利用 SQL 语法构建结构化、模块化的可视化图表。
@thomasp85:我激动万分,终于可以揭开我们2026年所做工作的神秘面纱:请认识 ggsql!一个全新的扩展……
Posit 宣布推出 ggsql 的 alpha 版本。ggsql 是一种新的 SQL 语言扩展,将图形语法风格的数据可视化引入 SQL,兼容 Quarto、Jupyter notebooks、Positron 和 VS Code。用户可以使用受 ggplot2 启发的熟悉 SQL 语法,创建分层、结构化的可视化图表。
Tsplat – 在终端中运行高斯泼溅渲染
Tsplat 是一款基于 Rust 的命令行工具,仅使用 CPU 即可直接在终端中渲染 3D 高斯泼溅场景,甚至支持通过 SSH 运行。它支持 Unicode 半角块和图形协议,并具有导航和自动旋转控制。
Datatype — 将文本转化为图表的可变字体
Datatype 是一种 OpenType 可变字体,能够从简单的文本表达式渲染内联条形图、迷你线图以及饼图,无需 JavaScript。
Pluto.jl 1.0 发布——Julia 的响应式笔记本
Pluto.jl 1.0 是一个面向 Julia 的响应式笔记本环境,通过自动响应式功能实现交互式且可重复的计算。