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

如何在R中使用plot函数绘制矩阵多列数据并自定义坐标轴

代码问题排查与修正

你的代码存在3处核心错误:

  • 调用plot()时参数逻辑错误,第一个参数不应该直接传入整个samplesizes数据框,且X/Y轴的标签与你要求的「X轴为效应量、Y轴为样本量」需求完全相反
  • 绘图循环中使用了未定义的变量s和effectsizes,你的实际数据中效应量序列是d,对应样本量存储在samplesizes的各列中
  • lines()函数的参数顺序与数据索引逻辑不匹配

完整可运行代码

d <- seq(from = 0.3, to = 0.5, by = 0.01)
nd <- length(d)

p <- seq(from = 0.6, to = 0.8, by = 0.1)
np <- length(p)

samplesizes <- data.frame(matrix(data=0, nrow=nd, ncol=np))
names(samplesizes) <- p
rownames(samplesizes) <- d
for (i in 1:np){
  for (j in 1:nd){
    result <- power.t.test(n=NULL, d = d[j], sig.level = .05,
                         power = p[i], alternative = "one.sided")
    samplesizes[j,i] <- result$n
  }
}
#-----------------------------------------------------
xrange <- range(d)
yrange <- round(range(samplesizes))
colors <- rainbow(length(p))

# 绘制空画布
plot(xrange, yrange, type="n", xlab="效应量 (d)",
     ylab="样本量 (n)", las = 1)

# 绘制不同检验效能对应的曲线
for (i in 1:np){
  lines(d, samplesizes[,i], lwd=2, col=colors[i])
}
legend("topright", title="检验效能", as.character(p), fill=colors)

运行上述代码即可得到和参考示例效果一致的可视化结果,效应量为横轴、样本量为纵轴,不同颜色曲线对应不同的检验效能水平。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:06:03