R 我可以在ggplot2中用水平线跨越类别组吗
我有六个站点(REACH)的数据,如下所示。为了进行分析,我对一些地点进行了分组,这些地点由R 我可以在ggplot2中用水平线跨越类别组吗,r,ggplot2,R,Ggplot2,我有六个站点(REACH)的数据,如下所示。为了进行分析,我对一些地点进行了分组,这些地点由poold_sites变量表示(即,对4号和8号池进行了分组(G1),对16号和26号池进行了分组(G2),对La Grange(G3)和Open River(G4)进行了分组 在图中,我绘制了每个位点的平均值±se。我在每个平均值上方添加了显著性(sig_pool;来自分组分析) 我想包括跨越两对分组站点的水平线,以指示哪些站点被合并用于分析。因此,水平线应跨越池4和池8(G1),另一条线应跨越池16和
poold_sites
变量表示(即,对4号和8号池进行了分组(G1),对16号和26号池进行了分组(G2),对La Grange(G3)和Open River(G4)进行了分组
在图中,我绘制了每个位点的平均值±se。我在每个平均值上方添加了显著性(sig_pool
;来自分组分析)
我想包括跨越两对分组站点的水平线,以指示哪些站点被合并用于分析。因此,水平线应跨越池4和池8(G1),另一条线应跨越池16和池26(G2)。其他两个站点不需要水平线
sig_pool
代码应该出现在所有四个组的上方。如果有两条水平线,我想要显著性代码(A或B)最后,应该只有一个A,位于池4和池8的线的中心,以及三个B,其中一个位于池16和池26的线的中心
我想我可以像这里显示的那样使用geom_段
,但我还无法确定如何指定x
和xend
。下面的代码刚刚创建了四个新类别
geom_segment(aes(x = pooled_groups,
xend = pooled_groups,
y = max(avg + se),
yend = max(avg + se))
我能做我想做的吗
MWE
库(dplyr)
图书馆(GG2)
reach多亏了@camille的评论,我了解到了,这是由ggpubr
加载的。我添加了两个ggsignif
层,这样我就可以将两个未分组的站点的线宽(大小
参数)设置为零
库(dplyr)
图书馆(GG2)
图书馆(GGF)
reach这不太理想,不包括水平段,但可能有助于开始。不要使用geom\u文本
,而是在组和显著性代码上尝试facet\u网格:facet\u网格(.~pooled\u groups+sig\u pooled,scales=“free\u x”,space=“free\u x”)
然后调整主题,使镶嵌条看起来更像普通标签。如果它与您最初的计划没有太大的偏离,我可以将其作为一个更大的解决方案发布。您还可以看看ggpubr
如何使@camile类似ggpubr
的提示引导我这样做,效果很好。谢谢!