📜  在 R 中绘制直方图上的正态分布

📅  最后修改于: 2022-05-13 01:54:28.387000             🧑  作者: Mango

在 R 中绘制直方图上的正态分布

在本文中,我们将讨论如何在 R 编程语言中绘制直方图上的正态分布。

在随机数据集中,通常观察到数据的分布是正常的,即在使用密度图进行可视化时,x 轴和 y 轴上的变量值我们得到钟形曲线。该曲线的中心代表数据集的平均值。但是即使是平滑的密度图也不会显示真实值,而是显示正态分布。为了解决这种情况,我们使用带有正态分布叠加的直方图。在这种情况下,直方图给出了绘制条形的实际值,而叠加密度图则显示了正态分布趋势。

为此,我们使用 rcompanion 包的 plotNormalHistogram()函数。此函数将数据向量作为参数,并绘制一个具有最佳拟合密度图的直方图作为叠加图。

安装

要安装 rcompanion 软件包:

install.packages("rcompanion") 

具有正态分布叠加的直方图

要创建具有密度图的正态分布叠加的基本直方图,我们使用 R 语言中 rcompanion 包库的 plotNormalHistogram()函数。

句法:

参数:

  • x:确定绘图的数据向量
  • prob:这是一个布尔值。如果为 FALSE,则显示计数,否则显示密度。
  • main:确定绘图的显示标题。
  • 长度:确定密度图线中的点数。

例子:

这里,是一个带有正态分布叠加的基本直方图。

R
# load library rcompanion
library(rcompanion)
  
# create data vector
x= c(rnorm(10000))
  
# draw plot
plotNormalHistogram( x, prob = FALSE,
                      main = "Normal Distribution overlay on Histogram",
                      length = 1000 )


R
# load library rcompanion
library(rcompanion)
  
# create data vector
x= c(rnorm(10000, 2000, 45))
  
# draw plot using plotNormalHistogram() function
# use colour and size arguments for formatting plot
plotNormalHistogram( x, prob = FALSE, col="black", border="green",
                      main = "Normal Distribution overlay on Histogram",
                      length = 10000, linecol="red", lwd=3 )


输出:

颜色和尺寸定制

我们可以根据需要自定义上图的外观,通过使用 col、linecol、lwd 和 border 参数来更改直方图的条形颜色、密度图线的颜色、密度图的宽度线,以及直方图条形边框的颜色。因为 plotNormalHistogram()函数是在 hist()函数之上构建的,所以 hist()函数的所有参数也在这里工作。

句法:

参数

  • col:确定直方图条的颜色。
  • linecol:确定密度图线的颜色。
  • lwd:确定密度图线的宽度。
  • 边框:确定直方图条形边框的颜色。

例子:

这里,是一个带有正态分布叠加的直方图,带有带有绿色边框和红色粗密度图线的黑色条。

R

# load library rcompanion
library(rcompanion)
  
# create data vector
x= c(rnorm(10000, 2000, 45))
  
# draw plot using plotNormalHistogram() function
# use colour and size arguments for formatting plot
plotNormalHistogram( x, prob = FALSE, col="black", border="green",
                      main = "Normal Distribution overlay on Histogram",
                      length = 10000, linecol="red", lwd=3 )

输出: