ggplot: добавить математическое выражение к разным граням в разном положении

Я пытаюсь добавить разные тексты к разным граням, но, поскольку шкалы разные, я хотел бы расположить их в соответствующих местах для каждого аспекта. geom_text позволяет мне играть с позицией, но не может превратить r ^ 2 в математическое выражение («2» должно быть superscript). Аннотации позволяют мне представить математическое выражение, но не размещать тексты в разных положениях (получить сообщение об ошибке).

Вот воспроизводимый пример:

df1=data.frame(x=c(1,10,100), y=c(1,10,100), fct=c("a", "b", "c"))
df2=data.frame(fct=c("a", "b", "c"), r2=c("r^2", "r^2", "r^2"), labs=c(7, 3, 8))
lb <- c(paste("r^2 == ", df2[1,3]), paste("r^2 == ", df2[2,3]),paste("r^2 == ", df2[3,3]))


#option 1 with geom_text
ggplot(df1, aes(x=x, y=y))+geom_point(data=df1, aes(x=x, y=y, color=fct))+facet_grid(~fct, scales='free')+geom_text(data=df2, aes(x=c(1, 10, 100), y=25, label=paste(r2,'=',labs), parse=T))

#option 2 with annotate
ggplot(df1, aes(x=x, y=y))+geom_point(data=df1, aes(x=x, y=y, color=fct))+facet_grid(~fct, scales='free')+annotate("text", x=1, y=20, label=lb, parse=TRUE)

Спасибо за помощь,

Парень


person Guy    schedule 01.05.2017    source источник


Ответы (1)


ggplot предупреждает вас в 1-м примере:

Предупреждение: игнорирование незнакомой эстетики: синтаксический анализ

Если вы поставите if за пределы aes сопоставлений, вы получите:

ggplot(df1, aes(x=x, y=y))+
  geom_point(data=df1, aes(x=x, y=y, color=fct))+
  facet_grid(~fct, scales='free')+
  geom_text(data=df2, aes(x=c(1, 10, 100), y=25, label=paste(r2,'==',labs)), parse=T)

введите описание изображения здесь

person lukeA    schedule 01.05.2017
comment
идеально! Большое спасибо! - person Guy; 01.05.2017
comment
PS: я не получил этого предупреждения - person Guy; 02.05.2017