在 R 的网格中将图与 Cowplot 对齐
Align plots with Cowplot in a grid in R
我有一个关于 Cowplot 中情节对齐的问题。
我想对齐由 3 列组成的面板中的图 (ggplot)。
第一列有 2 个图(垂直对齐),第二列有 1 个图,第三列也有两个图(垂直对齐)。
示例:
# Packages
library(tidyverse)
library(cowplot)
# Create sample data
df <- data.frame(replicate(2,sample(0:10,10,rep=TRUE)))
# Create sample plots
plot.a1 <- ggplot(df, aes(x=df$X1, y=df$X2)) +
geom_point()
plot.a2 <- plot.a1
plot.a <- plot_grid(plot.a1, plot.a2, align = "v", ncol = 1, nrow = 2)
plot.b <- plot.a1
plot.c1 <- plot.a1
plot.c2 <- plot.a1
plot.c <- plot_grid(plot.c1, plot.c2, align = "v", ncol = 1, nrow = 2)
# Create panel figure
plot_grid(plot.a, plot.b, plot.c, labels = c("A", "B", "C"), align = "h", axis = "b", nrow = 1, ncol = 3)
我预计通过水平对齐面板 (align = "h", axis = "b")
绘图的底轴会正确对齐,但是我做错了。
如何水平对齐列(通过底轴)?
plot_grid
正在为生成的绘图面板制作自己的边距。
如果您需要plot.b
与其他人对齐,只需调用:
plot.b <- plot_grid(plot.a1)
即使它是空的。然后,最后的plot_grid()
调用传了三个元素,都是一样的
plot_grid(plot.a, plot.b, plot.c, labels = c("A", "B", "C"), align = "h", axis = "b", nrow = 1, ncol = 3)
我有一个关于 Cowplot 中情节对齐的问题。
我想对齐由 3 列组成的面板中的图 (ggplot)。 第一列有 2 个图(垂直对齐),第二列有 1 个图,第三列也有两个图(垂直对齐)。
示例:
# Packages
library(tidyverse)
library(cowplot)
# Create sample data
df <- data.frame(replicate(2,sample(0:10,10,rep=TRUE)))
# Create sample plots
plot.a1 <- ggplot(df, aes(x=df$X1, y=df$X2)) +
geom_point()
plot.a2 <- plot.a1
plot.a <- plot_grid(plot.a1, plot.a2, align = "v", ncol = 1, nrow = 2)
plot.b <- plot.a1
plot.c1 <- plot.a1
plot.c2 <- plot.a1
plot.c <- plot_grid(plot.c1, plot.c2, align = "v", ncol = 1, nrow = 2)
# Create panel figure
plot_grid(plot.a, plot.b, plot.c, labels = c("A", "B", "C"), align = "h", axis = "b", nrow = 1, ncol = 3)
我预计通过水平对齐面板 (align = "h", axis = "b")
绘图的底轴会正确对齐,但是我做错了。
如何水平对齐列(通过底轴)?
plot_grid
正在为生成的绘图面板制作自己的边距。
如果您需要plot.b
与其他人对齐,只需调用:
plot.b <- plot_grid(plot.a1)
即使它是空的。然后,最后的plot_grid()
调用传了三个元素,都是一样的
plot_grid(plot.a, plot.b, plot.c, labels = c("A", "B", "C"), align = "h", axis = "b", nrow = 1, ncol = 3)