R语言新手如何绘制含指示项的指定函数
R语言绘制伽马分布概率密度函数新手操作指南
你需要绘制的是伽马分布的概率密度函数,公式定义如下(x>0,形状参数α>0,率参数β>0):
f(x; α, β) = (β^α / Γ(α)) * x^(α-1) * e^(-βx)
以下是无需基础就能直接运行的操作步骤,所有代码复制到R控制台回车即可执行:
步骤1:设置基础参数
先定义绘图需要的取值范围和分布参数,后续可以自行修改数值调整效果:
# 设定x轴取值范围:从0到10取1000个均匀的点,保证曲线平滑 x <- seq(from = 0, to = 10, length.out = 1000) # 设定多组伽马分布参数,方便对比不同参数对曲线形状的影响 alpha_list <- c(1, 2, 3, 5) # 形状参数α的取值组 beta_list <- c(1, 1, 1, 2) # 率参数β的取值组
步骤2:绘制曲线
R内置了dgamma()函数可以直接计算伽马分布的密度值,不需要手动写公式计算:
# 初始化画布,绘制第一条曲线 plot( x = x, y = dgamma(x, shape = alpha_list[1], rate = beta_list[1]), type = "l", # 指定绘制线条而非散点 lwd = 2, # 线宽 col = 1, # 线条颜色 xlab = "x", ylab = "概率密度f(x)", main = "不同参数下的伽马分布概率密度曲线" ) # 循环绘制其余参数对应的曲线 for (i in 2:length(alpha_list)) { lines( x = x, y = dgamma(x, shape = alpha_list[i], rate = beta_list[i]), lwd = 2, col = i, lty = i ) } # 添加图例区分不同参数的曲线 legend( "topright", legend = paste0("α=", alpha_list, ", β=", beta_list), col = 1:length(alpha_list), lty = 1:length(alpha_list), lwd = 2 )
常见调整方法
如果只需要绘制单组参数的曲线,不需要循环,直接调用一次plot即可:
# 示例:只绘制α=2、β=1的伽马分布密度曲线 x <- seq(0, 10, 1000) plot(x, dgamma(x, shape = 2, rate = 1), type = "l", lwd = 2, xlab = "x", ylab = "f(x)")
如果要调整显示范围,修改seq函数的from(x轴最小值)、to(x轴最大值)参数即可;修改col、lwd、lty参数可以分别调整线条的颜色、宽度、样式。
内容的提问来源于stack exchange,提问作者Cristopher Cuevas Moreno
相关产品推荐
相关产品推荐


