有没有一种方法可以覆盖两个ggplot面板集而无需重新缩放任何y轴?

时间:2019-05-16 05:26:25

标签: r ggplot2 overlay facet-wrap

我想将两组ggplot面板(每个面板是一个不同的国家/地区)叠加到一个单独的ggplot面板中,而无需重新调整两个图的任何比例,但是ggplot会重新缩放一个或另一个。

我尝试通过执行ggplot(df,aes(x = t,y = a))仅使用一个ggplot来包含两个变量,然后在该ggplot中将geom_point和geom_smooth用作第二个变量(y = b),但这会重新缩放变量a。

# plot 1
g <-ggplot(df, aes(x=year, y=a))
p <-g + geom_point(alpha=0.7) + geom_smooth(method="auto") + facet_wrap(~country, scales="free") + theme_bw() +
  xlab("Year") + ylab(bquote('a')) +
  scale_x_continuous(breaks=seq(1960, 2020, 15))

# plot 2
a <-ggplot(df, aes(x=year, y=b))
b <-a + geom_point(alpha=0.7, color="green") + geom_smooth(method="auto", color="darkgreen") +
  facet_wrap(~country, scales="free") + theme_bw() +
  xlab("Year") + ylab(bquote('b')) +
  scale_x_continuous(breaks=seq(1960, 2020, 15))

我希望能够将这两个ggplots覆盖到一组面板中,两个y轴的显示与单独绘制时(包括单位)完全一样。然后,我需要以某种方式使y轴之一出现在面板的右侧,所以我有两个y轴,每侧一个。

Image 1. ggplot rescales left y-axis. I don't want this to happen.

Image 2. What I want instead is to be able to somehow merge each of these images to get a single panel per country, displaying both the green and the blue lines with the scales that appear here.

0 个答案:

没有答案