背景:我有一组ggplots(不同类型),它们本应彼此相邻显示,但是它们具有相同的方面。
这是一个最小的工作示例:
p1 <- mtcars %>% ggplot(mapping = aes(x = wt, y = qsec)) + geom_point() +
facet_wrap(~ cyl)
plot(p1)
p2 <- mtcars %>% ggplot(mapping = aes(x = disp, y = qsec)) + geom_smooth() +
facet_wrap(~ cyl)
plot(p2)
问题 我想拥有p1的第一个图(例如,上面)p2的第一个图,p1的第二个图在p2的第二个图上方,依此类推……我该怎么做?到目前为止,我的解决方案是分别拥有p1和p2,但这不是我想要的。任何帮助将不胜感激。
答案 0 :(得分:3)
# install.packages("devtools")
# devtools::install_github("thomasp85/patchwork")
library(patchwork)
p1 / p2
答案 1 :(得分:2)
您还可以使用cran上的cowplot
软件包。
library(tidyverse)
library(cowplot)
p1 <- mtcars %>% ggplot(mapping = aes(x = wt, y = qsec)) + geom_point() +
facet_wrap(~ cyl)
p2 <- mtcars %>% ggplot(mapping = aes(x = disp, y = qsec)) + geom_smooth() +
facet_wrap(~ cyl)
plot_grid(p1, p2, ncol = 1, align = "v")
我非常喜欢cowplot
,但这确实改变了ggplot
的默认主题。如果您想将其改回,则需要添加以下内容:theme_set(theme_gray())
。