ggline stat_compare_means函数搞乱了y轴刻度

时间:2018-06-14 16:54:17

标签: r ggplot2

我一直试图在R(http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/76-add-p-values-and-significance-levels-to-ggplots/#stat_compare_means)的这个网页上绘制一些看起来像最后一个情节的东西,我的ggline图用基本属性进行注释。

但是,将stat_compare_means函数添加到ggline会将我的y轴刻度压缩到我的数据集中的最大数据点,因此我的平均线图看起来像图底部的一条小线。如果我使用scale_y_continuous缩短比例(limits = c(100,125)),统计数据就会消失,平均值不成比例。如何在不更改绘图中的y轴范围的情况下添加stat_compare_means函数的统计数据?

这是我的代码,它给出了压缩图:

ggline(merge_sub_rmNA, x = "Quartiles", y = "LBXGLT", add = c("mean_se"), color = "RIAGENDR", palette = "jco", legend.title = "Gender")+ 
 stat_compare_means(method = "kruskal.test", label.y = 40)+ 
 stat_compare_means(label = "p.signif", method = "wilcox.test",
                 ref.group = ".all.", hide.ns = TRUE)

以下是我尝试用来修复它的代码,但它最终删除了统计信息并使得方法图中的错误栏不正确。

ggline(merge_sub_rmNA, x = "Quartiles", y = "LBXGLT", add = c("mean_se"), color = "RIAGENDR", palette = "jco", legend.title = "Gender")+
 stat_compare_means(method = "kruskal.test", label.y = 40, inherit.aes = FALSE, mapping = aes(Quartiles, LBXGLT))+         
 scale_y_continuous(limits=c(100, 125))+
 stat_compare_means(label = "p.signif", method = "wilcox.test",
                 ref.group = ".all.", hide.ns = TRUE)

1 个答案:

答案 0 :(得分:0)

我最终搞清楚了,这是对stat_compare_means函数的一个简单的label.y和label.x。您只需要确保label.y和label.x之后放置的数字对应于图中的x和y轴值。例如,我把label.y = 120,因为我希望在y轴上的120之后添加统计数据(而不是之前做过的600)。

以下是现在可以使用的代码:

ggline(merge_sub_rmNA, x = "Quartiles", y = "LBXGLT", add = c("mean_se"), color = "RIAGENDR", palette = "jco", legend.title = "Gender")+
 stat_compare_means(method = "kruskal.test", label.y = 120, label.x = 1)+      # Add global p-value
 stat_compare_means(label = "p.signif", method = "wilcox.test",
                 ref.group = ".all.", hide.ns = TRUE, label.y = 120)