如何在R图中显示有效的p值

如何在R图中显示有效的p值,r,plot,p-value,R,Plot,P Value,所以我用这种格式绘制了一些数据 Time SD Average Situation n se 我用了这个密码 ggplot(data, aes(x=Time, y=Average, colour=Situation)) + geom_errorbar(aes(ymin=Average-se, ymax=Average+se), width=.1) + geom_line() + geom_point() 我想在Exp和Control之间做一个T.te

所以我用这种格式绘制了一些数据

Time    SD  Average Situation   n   se
我用了这个密码

ggplot(data, aes(x=Time, y=Average, colour=Situation)) + 
    geom_errorbar(aes(ymin=Average-se, ymax=Average+se), width=.1) +
    geom_line() +
    geom_point()
我想在Exp和Control之间做一个T.test,我想用星号“*”在图中显示重要性……我很难找到一个能做到这一点的代码……我知道如何做一个正常的T.test,但我真的希望那些有星号的图显示重要性

编辑我已经根据您对举一个对我有用的例子:

假设您想将t检验中的p值添加到图形中

set.seed(1)
### data following OPs format
data <- data.frame(Time=seq(10),
                   Average=abs(rnorm(10)),
                   Situation=rep(letters[1:2], 5)
                   )
### get p value
pval <- t.test(data$Average[data$Situation=="a"],
               data$Average[data$Situation=="b"])$p.value
### strip to 3 significant digits
pval <- signif(pval, 3)
### add asterisk if <0.05
pval <- ifelse(pval<0.05, paste0(pval, " *"), pval)
pval <- paste0("t-test \n p=", pval)

### plot as per OP
ggplot(data, aes(x=Time, y=Average, colour=Situation)) + 
    geom_line() +
    geom_point()+
### annotate it near lower left corner
    annotate("text",
             x=0.25*max(data$Time),
             y=0.25*max(data$Average),
             label=pval)
给予

有关更多选项,请参见?注释。如果需要p值的符号范围,则可以通过调用switch而不是ifelse对其进行修改


一个更大的问题可能是t检验是否适用于时间依赖性结果…

我无法回答ggplot,因为我不使用它。。。但是在base R中,你会使用文本函数。那么我如何使用文本函数编辑我的图形呢?我不确定文本是否与ggplot一起工作。。。但本质上你只需要文本x,y,我的文本。有关完整帮助,请参阅?文本。否则,将绘图另存为pdf,在您最喜欢的矢量图形程序中打开mine is Inkscape并在那里调整图形。更有效,让你更容易合成更大的数字。我似乎得到了这个错误:如果nrowlayer_data==0返回错误:参数长度为零是的,我的错。错误是由于未提供注释位置的x&y值-我错误地认为这些值是默认值。为了反映这一点,我们对上述内容进行了编辑。现在应该可以了。干杯,伙计。但我有另一个错误:集合美学的长度不兼容:标签