R 为每个刻面图添加额外的不同标签';面_包裹上的s x轴名称

R 为每个刻面图添加额外的不同标签';面_包裹上的s x轴名称,r,R,我想在facet\u wrap中的每个绘图中添加一个p值标签,而不重命名facet变量的顶部标签。我已经设置了scales=“free”,所以请考虑这一点 我可以在绘制离散变量时这样做,因为我只需要在geom上为aes(x=labels)提供标签。然而,当对密度进行刻面时,我需要提供我希望ggplot估计的密度的数值变量 以下是最小可复制代码: library(tidyverse) # Data frame df <- tibble(Var = c("Var1", "Var1", "Va

我想在
facet\u wrap
中的每个绘图中添加一个p值标签,而不重命名facet变量的顶部标签。我已经设置了
scales=“free”
,所以请考虑这一点

我可以在绘制离散变量时这样做,因为我只需要在
geom
上为
aes(x=labels)
提供标签。然而,当对密度进行刻面时,我需要提供我希望
ggplot
估计的密度的数值变量

以下是最小可复制代码:

library(tidyverse)

# Data frame
df <- tibble(Var = c("Var1", "Var1", "Var1", "Var1", "Var2", "Var2", "Var2", "Var2"), 
             Val = c(1, 1, 2, 3, 3, 3, 4, 2),
             Pvl = c("0.567", "0.049*", "0.078.", "0.003*", "0.567", "0.049*", "0.078.", "0.003*"))

# Plot
ggplot(df) + 
  geom_density(aes(x = Val)) + 
  facet_wrap(~Var) + 
  labs(x = NULL)
库(tidyverse)
#数据帧

df这对你有用吗

 library(tidyverse)
      ggplot(df) + 
      geom_density(aes(x = Val)) + 
      facet_wrap(~Var,scales="free") + 
      labs(x="")+
      geom_text(data=data.frame(x=2.4, y=c(0.3,0.8), label=c("0.078.","0.049*"), 
                                Var=c("Var1","Var2")), 
                aes(x,y,label=label), inherit.aes=FALSE)+
      theme_bw()
            #You can change themes
            #y=0.8 and 0.3  to maintain plot
问题是,您会在顶部得到p值 绘图:

我不知道如何在facet之后设置标签,因此我提供了另一个选项,它使用
grid.arrange()
将多个GGPlot放在一起,并使用
map2()分别设置标签


我以前尝试过
geom_text
,但是,我需要
scales=free
在镶嵌面上,因此我无法为文本设置固定坐标。但是谢谢你的回答!检查编辑。图像不是输出。取决于scales=“free”图像@AndersonNeisse怎么样?可以在放置坐标之前检查绘图,然后进行相应调整
library(tidyverse)
library(gridExtra)

df %>% split(.$Var) %>%
  map2(c("0.078.", "0.049*"),
    ~ ggplot(.x, aes(x = Val)) +
        geom_density() + xlab(.y) +  # xlab(.y) is what you expect
        xlim(1, 4) + ylim(0, 0.8) +
        ggtitle(.x$Var) + theme_bw() +
        theme(plot.title = element_text(hjust = 0.5))) %>%
  reduce(grid.arrange, ncol = 2)