patchwork是一个软件包,旨在使R中的情节合成极为简单和强大。它主要供ggplot2的用户使用,并尽力确保ggplots正确对齐,无论您的合成结构多么复杂。
在本教程中,我们将介绍使用拼凑而成的基础知识。最后,您将对API有了一个很好的了解,并准备好深入探讨其他小插曲所涵盖的一些更高级的主题。
示例图
我们将从创建一些示例图开始在本教程中使用:
library(ggplot2)
p1 <- ggplot(mtcars) +
geom_point(aes(mpg, disp)) +
ggtitle('Plot 1')
p2 <- ggplot(mtcars) +
geom_boxplot(aes(gear, disp, group = gear)) +
ggtitle('Plot 2')
p3 <- ggplot(mtcars) +
geom_point(aes(hp, wt, colour = mpg)) +
ggtitle('Plot 3')
p4 <- ggplot(mtcars) +
geom_bar(aes(gear)) +
facet_wrap(~cyl) +
ggtitle('Plot 4')
基本用法
绝对最简单的用法是ggplot2中使用的+
运算符的扩展,以允许将图加在一起:
p1 + p2
image.png
将地块加在一起时,最后添加的地块将是活动地块,并将接收新添加的ggplot2对象(例如几何图形,标签等)的任何内容:
p1 + p2 + labs(subtitle = 'This will appear in the last plot')
image.png
控制布局
默认情况下,拼凑将尝试使网格保持正方形,并按行顺序填写
p1 + p2 + p3 + p4
image.png
这可以通过添加plot_layout()
来控制
p1 + p2 + p3 + p4 + plot_layout(nrow = 3, byrow = FALSE)
image.png
plot_layout()
具有各种令人惊叹的功能来控制合成的布局。有关所有选项的完整摘要,请参见布局小插图。
堆积和包装地块
通常,您希望将图放置在彼此之上或彼此相邻,而不是填写网格。尽管可以通过添加单行或单列布局来完成此操作,但拼凑而成的还提供了两个操作员来直接执行此操作,并进一步为布局提供了视觉提示。 |
将地块并排放置,而/
将其堆叠:
p1 / p2
image.png
由于patchworks可以嵌套,因此这两个运算符通常足以创建相当复杂的布局
p1 | (p2 / p3)
image.png
注释组成
通常需要在作品中添加标题,标题,标签等。这可以通过在拼凑而成的基础上添加一个plot_annotation()
来实现:
(p1 | (p2 / p3)) +
plot_annotation(title = 'The surprising story about mtcars')
image.png
patchwork 提供自动标记功能,以识别文本中的子图:
p1 + p2 + p3 +
plot_annotation(tag_levels = 'I')
image.png
标签可以是阿拉伯数字或罗马数字,也可以是拉丁字母,并且可以为不同的嵌套级别提供单独的标签。有关更多信息,请参见* Annotation *小插图。
https://cran.r-project.org/web/packages/patchwork/vignettes/patchwork.html
网友评论