Добавление geom_text из другого фрейма данных в фасеты - PullRequest
0 голосов
/ 04 февраля 2019

Я строю график ежемесячно суммы осадков за несколько лет в определенном месте, используя 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 в aes().

Есть какие-нибудь идеи, которые помогут мне достичь моей цели?

1 Ответ

0 голосов
/ 04 февраля 2019

Возможно, я упустил момент, но как насчет этого?

# 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 иy координаты годовой аннотации осадков в aes для geom_text.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...