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

使用curve()绘制归一化至V_max的C-V_C曲线并显示均值点

需求与问题

我希望绘制一条以C值为X轴、V_C值为Y轴的曲线,同时将曲线归一化至V_max,并在曲线上以圆点形式显示均值。我尝试了以下代码:

V_max=15
H=1
n=1
C=c(0,0.01,0.1,1)

fun <- function( C, H, n ){
  2 / (3 + (C / H)^n) 
}

mylist <- list()
for(i in 1:length(C)){
V_C <- V_max*fun(C[i],H,n)
x3 <- rnorm(1000,V_C,1)
mylist[i] <- mean(x3)
}

curve(fun, -10, 10, col ="red", ylab ="V_C")

期望输出的曲线是一条随C值增大而下降的平滑曲线,曲线上对应指定C值的位置有实心圆点标记均值。

修正方案

原代码存在未做归一化、X轴范围不符、未添加均值标记的问题,以下是修正后的代码:

V_max = 15
H = 1
n = 1
C = c(0, 0.01, 0.1, 1)

# 定义基础函数
fun <- function(C, H, n) {
  2 / (3 + (C / H)^n) 
}

# 计算每个C对应的均值,用sapply替代循环更简洁
mean_vals <- sapply(C, function(c_val) {
  V_C <- V_max * fun(c_val, H, n)
  mean(rnorm(1000, V_C, 1))
})

# 绘制归一化后的平滑曲线,X轴范围匹配实际C值区间
curve(V_max * fun(x, H, n), from = min(C), to = max(C), 
      col = "red", ylab = "V_C", xlab = "C", lwd = 2)

# 添加实心圆点标记均值
points(C, mean_vals, pch = 19, col = "blue", cex = 1.2)

关键修改说明

  • 曲线绘制时乘以V_max,完成归一化要求
  • 调整curve()的from和to参数为C的最小/最大值,避免无效的X轴范围
  • 使用sapply替代循环,更高效计算各C值对应的均值
  • 用points()添加实心圆点(pch=19),匹配目标曲线的标记样式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:45:31