我有一个包含四个图的图。所有 y 轴都是温度,两个 x 轴是 Time1 和 Time2。我正在使用 R 中的patchwork
包和plot_layout()
函数将所有四个图堆叠并对齐为 2x2 图形。由于所有 y 轴都是相同的变量,我只想在图的左侧显示一个 y 轴标题,但是我不知道该怎么做。我还想掩盖右列中两个图上的 y 轴,但是当我移动数字时,右列与左列重叠(我想要相反)。
这是我到目前为止所做的一个例子。
library(ggplot2)
library(patchwork)
df1 <- data.frame(x1 = rnorm(20), y1 = rnorm(20))
df2 <- data.frame(x2 = rnorm(20), y2 = rnorm(20))
df3 <- data.frame(x3 = rnorm(20), y3 = rnorm(20))
df4 <- data.frame(x4 = rnorm(20), y4 = rnorm(20))
p1 <- ggplot(data = df1, aes(x = x1, y = y1)) +
geom_point() +
ylab("Temperature") +
theme_bw() +
theme(panel.grid = element_blank(),
plot.margin = unit(c(0,0,0,0),"cm"))
p2 <- ggplot(data = df2, aes(x = x2, y = y2)) +
geom_point() +
ylab("Temperature") +
theme_bw() +
theme(panel.grid = element_blank(),
plot.margin = unit(c(0,0,0,0),"cm"))
p3 <- ggplot(data = df3, aes(x = x3, y = y3)) +
geom_point() +
xlab("Time1") +
ylab("Temperature") +
theme_bw() +
theme(panel.grid = element_blank(),
plot.margin = unit(c(-0.5,0,0,0),"cm"))
p4 <- ggplot(data = df4, aes(x = x4, y = y4)) +
geom_point() +
xlab("Time2") +
ylab("Temperature") +
theme_bw() +
theme(panel.grid = element_blank(),
plot.margin = unit(c(-0.5,0,0,0),"cm"))
p5 <- p1/p2/p3/p4 + plot_layout(ncol = 2, heights = c(1,1))
p5