You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言回归图中如何正确显示P<0.05的斜体表达式

解决R回归图中P值小于0.05时的显示格式问题

懂啦!你想要的效果是:当P值小于0.05时,回归图图例里显示斜体的P<0.05,而不是现在的P=<0.05。问题出在之前统一用了等于号来构建表达式,我们可以通过分情况生成对应表达式来解决这个问题,下面是修改后的完整代码:

DF <- data.frame(X = c(1, 2, 3, 4, 5, 6, 7), Y = c(1.5, 2.1, 1.2, 4.4, 1, 6.5, 8.4))
plot(Y ~ X, data = DF)
# 添加回归线
regline <- lm(Y ~ X, data = DF)
abline(regline)
# 获取统计量
summary(regline)
# 获取调整R²
R2 <- summary(regline)$adj.r.squared
# 获取P值(保留原始数值,不提前转成字符串)
P <- summary(regline)$coefficients[2,4]
# 绘制R²和P值
r2p = vector('expression', 2)
# 处理R²的显示
r2p[1] = substitute(expression(italic(R)^2 == RSQ), list(RSQ = format(R2, dig = 2)))[2]
# 分情况构建P值的表达式
if(P < 0.05){
  r2p[2] = expression(italic(P) < 0.05)
} else {
  r2p[2] = substitute(expression(italic(P) == PVALUE), list(PVALUE = format(P, digits = 2)))[2]
}
legend('topleft', legend = r2p, bty = 'n', y.intersp = 1.3)

关键改动说明:

  • 不再提前把P值转成带<0.05的字符串,而是保留原始数值型P值,方便后续进行条件判断
  • 针对P值大小分情况构建表达式:
    • 当P<0.05时,直接生成expression(italic(P) < 0.05),这样就能显示斜体P加上小于号的格式
    • 当P≥0.05时,还是用原来的方式生成带等于号的表达式,显示具体的P值

这样运行代码后,图例里的P值显示就完全符合你的需求啦~

内容的提问来源于stack exchange,提问作者owl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:09:34