如何在 r 中绘制对数正态分布


要绘制 R 中对数正态分布的概率密度函数,我们可以使用以下函数:

  • dlnorm(x,meanlog = 0,sdlog = 1)创建概率密度函数。
  • curve(function, from = NULL, to = NULL)绘制概率密度函数。

例如,以下代码说明了如何绘制平均值 = 0 且标准差 = 1(在对数刻度上)的对数正态分布的概率密度函数,其中绘图的 x 轴从 0 到 10:

 curve(dlnorm(x, meanlog=0, sdlog=1), from=0, to=10)

在 R 中绘制正态分布图

默认情况下,meanlog = 0 和 sdlog =1,这意味着我们可以生成完全相同的图,而无需在dlnorm()函数中指定这些参数:

 curve(dlnorm(x), from=0, to=10)

我们可以添加标题、更改 Y 轴标签、增加行宽,甚至更改行颜色,以使绘图更加美观:

 curve(dlnorm(x), from=0, to=10, 
    main = 'Log Normal Distribution', #add title
    ylab = 'Density', #change y-axis label
    lwd = 2, #increase line width to 2
    col = 'steelblue') #change line color to steelblue 

R 中带有标题的对数正态分布图

我们还可以在图中添加多条曲线来比较具有不同标准差的对数正态分布。例如,以下代码创建 sdlog = 0.3、sdlog = 0.5 和 sdlog = 1 的正态分布图:

 curve(dlnorm(x, meanlog=0, sdlog=.3), from=0, to=10, col='blue')
curve(dlnorm(x, meanlog=0, sdlog=.5), from=0, to=10, col='red', add=TRUE)
curve(dlnorm(x, meanlog=0, sdlog=1), from=0, to=10, col='purple', add=TRUE)

我们可以使用legend()函数向图中添加图例,该函数采用以下语法:

图例(x,y = NULL,图例,填充,col,bg,lty,cex)

金子:

  • x, y:用于定位图例的 x 和 y 坐标
  • 图例:要放入图例中的文本
  • fill:图例内的填充颜色
  • col:用于图例内线条的颜色列表
  • bg:图例的背景颜色
  • lty:线条样式
  • cex:图例中文本的大小

在我们的示例中,我们将使用以下语法来创建图例:

 #create density plots
curve(dlnorm(x, meanlog=0, sdlog=.3), from=0, to=10, col='blue')
curve(dlnorm(x, meanlog=0, sdlog=.5), from=0, to=10, col='red', add=TRUE)
curve(dlnorm(x, meanlog=0, sdlog=1), from=0, to=10, col='purple', add=TRUE)

#add legend
legend(6, 1.2, legend=c("sdlog=.3", "sdlog=.5", "sdlog=1"),
       col=c("blue", "red", "purple"), lty=1, cex=1.2) 

R 图中的多个对数正态密度函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注