将geom_text从不同的数据帧添加到构面

时间:2019-02-04 00:21:19

标签: r ggplot2 facet-wrap

我正在使用ggplot2在某个位置绘制每月多年的降水总量:

library(ggplot2)
df.mon <- data.frame(id=rep("Station 1", 192),
                     month=rep(seq(1:12), 16),
                     year=rep(1999:2014, each=12),
                     monprec=runif(n=192, min=0, max=400))

ggplot(df.mon, aes(x=month, y=monprec)) +
  geom_bar(stat="identity") +
  theme_bw(base_size=18) +
  facet_wrap(~year, ncol=3)

enter image description here

在同一幅图上,我想添加具有年度降水总量的注释,这些注释位于第二个数据框中:

df.year <- data.frame(id=rep("Station 1", 16),
                      year=1999:2014,
                      totprec=runif(n=16, min=200, max=1000))

我的第一种方法是使用geom_text(),但是df.year数据框没有month列,该列可用作{中的y自变量{1}}。

有什么想法可以帮助我实现目标吗?

1 个答案:

答案 0 :(得分:3)

我可能错过了重点,但是呢?

# Data frames
df.mon <- data.frame(id=rep("Station 1", 192),
                     month=rep(seq(1:12), 16),
                     year=rep(1999:2014, each=12),
                     monprec=runif(n=192, min=0, max=400))

df.year <- data.frame(id=rep("Station 1", 16),
                      year=1999:2014,
                      totprec=runif(n=16, min=200, max=1000))

# Plotting
library(ggplot2)

ggplot(df.mon, aes(x=month, y=monprec)) +
  geom_bar(stat="identity") +
  theme_bw(base_size=18) +
  facet_wrap(~year, ncol=3) +
  ylim(c(0, 500)) +
  geom_text(data = df.year, aes(x = 6.25, y = 450, label = round(totprec)))

enter image description here

在这里,我仅在x的{​​{1}}中为年降水量注释指定yaes坐标。