R 将自身公式中的p值添加到ggplot2

R 将自身公式中的p值添加到ggplot2,r,ggplot2,p-value,R,Ggplot2,P Value,我想在绘图中添加来自特定公式的不同p值。我需要每个受试者的不同p值。以下是我使用的代码,但它不起作用: formula <- lme(scale(Inactive.freq)~ scale(Time.point), random=~ 1|Subject, data=Freq_df, method='ML') gggplot(Freq_df, aes(x=Time.point, y=Inactive.freq, group=Subject,colour=Subject)) +

我想在绘图中添加来自特定公式的不同p值。我需要每个受试者的不同p值。以下是我使用的代码,但它不起作用:

formula <- lme(scale(Inactive.freq)~ scale(Time.point), random=~ 1|Subject, data=Freq_df,  method='ML')

gggplot(Freq_df, aes(x=Time.point, y=Inactive.freq, group=Subject,colour=Subject)) +
        geom_line(size=2)+
        theme_minimal()+ 
        geom_point()+
        stat_smooth(method=lm, se = FALSE,linetype ="dashed")+
        geom_smooth(method = "lm", formula = formula)+
        stat_poly_eq(aes(label =  paste(stat(eq.label),
                                        stat(adj.rr.label), sep = "~~~~")), formula = formula, parse = TRUE) + 
        stat_fit_glance(label.x.npc = "right", label.y.npc = "bottom", geom = "text", 
                        aes(label = paste("P-value = ", signif(..p.value.., digits = 3), sep = "")))

这可以使用软件包提供的另一层“stat_fit_glance”方法来完成(我相信您已经在使用它了…)。这是一个很棒的软件包,具有更多注释ggplot2的功能

解决办法是:

修改后的数据

编辑1:

#another way to use `stat_fit_glance` (not shown in the graph here)
stat_fit_glance(label.x = "right", label.y = "bottom", 
                aes(label = sprintf('r^2~"="~%.3f~~italic(p)~"="~%.2f',
                    stat(r.squared), stat(p.value))), parse = T)
`如果每个组需要单独的p值(单独的直线拟合)(而且我相信没有太多的组…必须限制允许的面数,我不知道!),则“面包裹”将起到作用

输出


使用选项以获得所需的输出,例如,如果使用label.x.npc=“left”&label.y.npc=“bottom”,则回归方程和p值标签可能会重叠。

这可以使用另一个图层,并使用软件包提供的“stat\u fit\u glance”方法来完成(我相信您已经在使用…)。这是一个很棒的软件包,具有更多注释ggplot2的功能

解决办法是:

修改后的数据

编辑1:

#another way to use `stat_fit_glance` (not shown in the graph here)
stat_fit_glance(label.x = "right", label.y = "bottom", 
                aes(label = sprintf('r^2~"="~%.3f~~italic(p)~"="~%.2f',
                    stat(r.squared), stat(p.value))), parse = T)
`如果每个组需要单独的p值(单独的直线拟合)(而且我相信没有太多的组…必须限制允许的面数,我不知道!),则“面包裹”将起到作用

输出


使用选项获得所需的输出,例如,如果使用label.x.npc=“left”和label.y.npc=“bottom”,则回归方程和p值标签可能重叠。

如果包含一个简单的示例输入和所需的输出,可以用于测试和验证可能的解决方案,则更容易帮助您。如果没有实际运行的示例数据,很难猜测这段代码会做什么。期望的输出究竟是什么?我在这里根本看不到任何p值。你说的是模型的预测值吗?谢谢。是的,我说的是模型中的值。如果您包含一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,那么就更容易帮助您。如果没有实际运行的示例数据,很难猜测这段代码会做什么。期望的输出究竟是什么?我在这里根本看不到任何p值。你说的是模型的预测值吗?谢谢。是的,我说的是模型中的值。谢谢。问题是,我收到了此错误消息,但我不理解原因,因为已经定义了对象:1:在
stat\u smooth()
中计算失败:未找到对象“Freq”;2:在
stat\u poly\u eq()
中计算失败:未找到对象“Freq”。数据集可能有问题,您能否将您的数据子集以生成最小工作示例(MWE)并将其添加到您的问题中?代码可以处理我的数据,但如果我发布了它,我将能够提供帮助。查看Flick先生提到的链接,了解如何操作。干杯我刚刚更新了问题,显示了我的部分数据。我希望这有助于理解这个问题。谢谢。嘿,请看一下。我用你提供的数据更新了答案。希望它能澄清这个问题。太好了!很乐意帮忙。但还是对错误感到好奇。。。你能把它贴在这里吗?谢谢。问题是,我收到了此错误消息,但我不理解原因,因为已经定义了对象:1:在
stat\u smooth()
中计算失败:未找到对象“Freq”;2:在
stat\u poly\u eq()
中计算失败:未找到对象“Freq”。数据集可能有问题,您能否将您的数据子集以生成最小工作示例(MWE)并将其添加到您的问题中?代码可以处理我的数据,但如果我发布了它,我将能够提供帮助。查看Flick先生提到的链接,了解如何操作。干杯我刚刚更新了问题,显示了我的部分数据。我希望这有助于理解这个问题。谢谢。嘿,请看一下。我用你提供的数据更新了答案。希望它能澄清这个问题。太好了!很乐意帮忙。但还是对错误感到好奇。。。你能把它贴在这里吗?
    ggplot(Freq_df, aes(x = Time.point, y = Pacing.freq)) + ylim(-0.5, 1.5) + 
    geom_line(size=2, alpha = 0.5) + geom_point(aes(group = "Subject"), size = 3) + 
    geom_smooth(method = "lm", formula = formula) + facet_wrap('Subject') +
    stat_poly_eq(aes(label =  paste(stat(eq.label), stat(adj.rr.label), 
                 sep = "~~~~")), formula = formula, parse = TRUE) + 
    stat_fit_glance(label.x.npc = "right", label.y.npc = "bottom", geom = "text", 
                    aes(label = paste("P-value = ", signif(..p.value.., digits = 15), 
                    sep = "")))
#another way to use `stat_fit_glance` (not shown in the graph here)
stat_fit_glance(label.x = "right", label.y = "bottom", 
                aes(label = sprintf('r^2~"="~%.3f~~italic(p)~"="~%.2f',
                    stat(r.squared), stat(p.value))), parse = T)