📜  用 R 中的拟合密度曲线叠加直方图(1)

📅  最后修改于: 2023-12-03 15:27:09.211000             🧑  作者: Mango

用 R 中的拟合密度曲线叠加直方图

在数据分析和建模中,我们通常需要探查数据的分布情况。而最常见的数据分布可视化方式是直方图。然而,直方图仅仅只显示了数据的分布情况,而没有显示其数学性质。因此,我们常常需要将拟合的密度曲线(kernel density estimation)与直方图结合起来展示,以得到更全面的数据分布信息。

在 R 中,我们可以使用 ggplot2 包中的 geom_density() 函数来实现。在本次介绍中,我们将使用 iris 数据集作为示例。

准备数据

我们首先需要导入 ggplot2 包和 iris 数据集。

library(ggplot2)
data(iris)
绘制直方图并叠加拟合的密度曲线

接下来,我们可以使用 ggplot2 的语法来绘制直方图并叠加拟合的密度曲线。

ggplot(iris, aes(x = Sepal.Length)) +               # 指定 x 轴变量
  geom_histogram(aes(y = ..density..),             # 绘制直方图
                 binwidth = 0.2,                    # 指定直方图每个箱子的宽度
                 color = "black", fill = "gray") +  # 指定直方图的颜色和填充色
  geom_density(fill = "#FF6666", alpha = 0.5) +     # 绘制拟合的密度曲线
  labs(title = "Sepal Length Distribution") +       # 添加标题
  xlab("Sepal Length (cm)") + ylab("Density")       # 指定 x 轴和 y 轴标签

效果如下:

通过这个图表,我们可以看到 iris 数据集 Sepal Length 变量的分布情况。拟合的密度曲线可以让我们更直观地看出分布的形状和数据集中的峰值位置。

总结

本次介绍中,我们使用了 R 中的 ggplot2 包来绘制直方图并叠加密度曲线。通过这个方法,我们可以更全面地探查数据的分布情况,加深我们对数据的理解。