在 facet_grid 中标记单个图

问题描述

我正在尝试完成此图,而我需要的是将 R 平方分别添加到每个图中。

然而,标签叠加在每个图形上。

我使用了 p + geom_textp + geom_label,但没有积极的结果。


Trajectories$date<-as.POSIXct(Trajectories$date,"%Y-%m-%d",tz = "UTC")

# Reorder names in a new variable
Trajectories$variable_f = factor(Trajectories$variable,levels=c("canopy_cover","Leaf_litter","Chla","Shrimps","macroinvertebrates"))

levels(Trajectories$variable_f) <- 
  c("textstyle('Canopy openness')","textstyle('Leaf litter')","textstyle('Chlorophyll-')*italic('a')","textstyle('Shrimps')","atop(NA,atop(textstyle('Macroinvertebrate'),textstyle('density')))")

# Changes names in Facet_grid ---- es una manera buena,pero no la voy a usar --- Habria que labeller(variable_f = variable_f
#variable_f <- c("Canopy openness","Leaf litter","Chlorophyll-a","Macroinvertebrates")
#names(variable_f) <- c("canopy_cover","macroinvertebrates")

streams <- c("Prieta A","Prieta B")
names(streams) <- c("QPA","QPB")

# General graph -----------------------------------------------------------

 p<- ggplot(Trajectories,aes(date,value)) + 
  geom_point(shape = 21,fill = "#bdd7e7",color = "#2171b5",size = 3) +
  geom_smooth(se = T,size=1.7,color= "gray20",method = "gam",formula = y ~s(x)) + 
  geom_hline(yintercept = 0,color="gray20") +
  
  xlab('Year') + ylab("Change in magnitude") + 
  theme(axis.title.x = element_text(size = 14,angle = 0)) + # axis x
  theme(axis.title.y = element_text(size = 14,angle = 90)) + # axis 7
  theme(axis.text.x=element_text(angle=0,size=10,vjust=0.5,color="black")) + #subaxis x
  theme(axis.text.y=element_text(angle=0,color="black")) + #subaxis y
  
  ylim(-3,3) + 

  theme(legend.position="none")+
  
  theme(panel.grid.major = element_line(colour = "gray95"),panel.grid.minor = element_blank(),panel.background = element_blank(),axis.line = element_line(colour = "black")) +
  theme(panel.border = element_rect(colour = "black",fill=NA,size=0.5)) +
  
  facet_grid(vars(stream),vars(variable_f),labeller = labeller(variable_f = label_parsed,stream = streams)) +
    theme(
      strip.text.x = element_text(size = 10,color = "black"),strip.text.y = element_text(size = 10,strip.placement = "outside") +
   theme(strip.background=element_rect(color= "black",fill="gray85")) +
   theme(strip.text.x = element_text(margin = margin(0.001,0.001,"cm"))) +
    
 geom_vline(aes(xintercept=as.POSIXct("2017-09-21")),# Hurricane Maria
            col= "red",linetype=4,alpha=0.9) +
  geom_vline(aes(xintercept=as.POSIXct("2017-09-6")),# Hurricane Irma
             col= "blue",alpha=0.9) 
p

enter image description here

我试图用标签构建一个数据框。但它不起作用,它与标签重叠。

labels <- data.frame(variable =c("canopy_cover","macroinvertebrates","canopy_cover","macroinvertebrates"),label=c("R1","R2","R3","R4","R5","R6","R7","R8","R9","R10"),stream= c("QPA","QPA","QPB","QPB"))
labels
p +   geom_text(
  size    = 5,data    = labels,mapping = aes(x = as.POSIXct("2017-09-6"),y = Inf,label = label),hjust   = 1.05,vjust   = 1.5
)

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)