在R中使用geom_text和facet_wrap时覆盖文本

问题描述 投票:0回答:1

我在 RStudio 中的 facet_wrap 函数中组合 geom_text 时遇到一些问题。 我想在使用 ggplot2 库创建的每个图中插入每个函数的 R^2。

我使用以下代码总结了数据框中每个函数的 R^2:

df_R_DENSITY<-data.frame(Trial=c("A","B","C","D","E","F","G","H","I","L"),
                   R = c("italic(R^2) == 0.865", "italic(R^2) == 0.908", "italic(R^2) == 0.887",    "italic(R^2) == 0.890", "italic(R^2) == 0.854", "italic(R^2) == 0.825", "italic(R^2) == 0.895", "italic(R^2) == 0.926", "italic(R^2) == 0.864", "italic(R^2) == 0.798"))

然后我使用以下代码创建了图表:

ggplot()+
  geom_hline(yintercept = 25, size=0.5, alpha = 0.6, color="gold2") +
  geom_hline(yintercept = 35, size=0.5, alpha = 0.6, color="cyan3") +
  geom_hline(yintercept = 60, size=0.5, alpha = 0.6, color="magenta") +
  geom_point(data = df,aes(x=MetriCorrectetd,y=Droplets.cm2), size=0.2, colour="blue")+
  geom_line(data = DF_Predicted_Density,aes(x=MetriCorrectetd,y = Predicted), size=0.8,  colour = "green3", alpha = 0.8)+
  facet_wrap(~ LABEL, ncol=2)+
  geom_text(x = 4.5, y = 225, aes(label = R), data = df_R_DENSITY, parse = T, hjust = 0)+
 ylim(0,250)+
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 24), 
        axis.title = element_blank(),
        strip.text.x = element_text(size = 14, face = "bold"),
        strip.background=element_rect(fill="coral2"))

但是 R^2 在图的每个方面都是相互叠加的。正如你在图片中看到的。 我该如何解决这个问题?

r ggplot2 facet-wrap geom-text
1个回答
0
投票

无法重现您的问题,因为我们无法访问

DF_Predicted_Density
。请参阅here如何使用最小的可重现示例。不过,您可以使用
stat_cor(...)
包中的
ggpubr
添加 R2。

library(ggplot2)
library(ggpubr)

ggplot(mpg, aes(x = cty, y = hwy)) +
  geom_point() +
  stat_smooth(method = 'lm') +
  theme_bw() +
  facet_wrap(~manufacturer) +
  stat_cor(aes(label = after_stat(rr.label)), color = "black", geom = "text")
#> `geom_smooth()` using formula = 'y ~ x'

创建于 2024-06-11,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.