【发布时间】:2020-11-14 09:10:36
【问题描述】:
我正在使用 cowplot 包的 plot_grid() 函数在网格中绘制 ggplots,想知道是否有办法按列而不是按行绘制图?
library(ggplot2)
library(cowplot)
df <- data.frame(
x = c(3,1,5,5,1),
y = c(2,4,6,4,2)
)
# Create plots: say two each of path plot and polygon plot
p <- ggplot(df)
p1 <- p + geom_path(aes(x,y)) + ggtitle("Path 1")
p2 <- p + geom_polygon(aes(x,y)) + ggtitle("Polygon 1")
p3 <- p + geom_path(aes(y,x)) + ggtitle("Path 2")
p4 <- p + geom_polygon(aes(y,x)) + ggtitle("Polygon 2")
plots <- list(p1,p2,p3,p4)
plot_grid(plotlist=plots, ncol=2) # plots are drawn by row
我想在第一列中绘制 P1 和 P2,在第二列中绘制 p3 和 p4,如下所示:
plots <- list(p1, p3, p2, p4) # plot sequence changed
plot_grid(plotlist=plots, ncol=2)
实际上我可以有 4、6 或 8 个地块。绘图网格中的行数会有所不同,但总是有 2 列。在每种情况下,我都想按列(垂直)填充绘图网格,以便我的前 2、3 或 4 个绘图(视情况而定)彼此重叠。如果我可以指定类似 par(mfcol = c(n,2)) 的内容,我想避免对这些不同的排列进行硬编码。
【问题讨论】:
标签: ggplot2