我经常看到具有相同共享 x 轴但不同 y 轴的图形。它们不能刻面,因为某些 y 轴需要复杂的名称和/或出于历史/解释原因而翻转坐标。
下面我绘制了一个这样的虚假记录的示例,并展示了在 Inkscape 中调整它后我希望这个图的样子。有没有办法从 R/patchwork 中实现这个结果?
library(tidyverse)
library(patchwork)
set.seed(123)
dat <- tibble::tibble(a = 1:10,
b = c(0, 2, 5, 8, 5, 4, 6, 4, 3, 2),
c = -stats::rnorm(10, b, 3),
d = sample(letters[1:3], 10, TRUE))
shared_x <- c(0, 11)
pl1 <- dat %>%
ggplot(aes(x = a, y = b)) +
geom_point(colour = "indianred") +
coord_cartesian(xlim = shared_x) +
scale_y_continuous("B is awesome", position = "right")
pl2 <- dat %>%
ggplot(aes(x = a, y = c)) +
geom_point(colour = "steelblue") +
scale_y_reverse("C is inversely related to B") +
coord_cartesian(xlim = shared_x, ylim = c(3, -13))
theme_set(theme_classic())
(pl1 & theme(axis.title.x = element_blank(), axis.text.x = element_blank(), axis.ticks.x = element_blank(), axis.line.x = element_blank())) / pl2
ggsave("overlapping_axes.pdf", width = 10, height = 8, units = "cm")
由reprex 包于 2021-07-09 创建 (v2.0.0 )