R语言 用拟合的密度曲线叠加直方图
在这篇文章中,我们将研究在R编程语言中用拟合密度曲线叠加直方图的不同方法。
方法1:使用line()和density()函数
在这种方法中,将直方图与拟合的密度曲线重叠,用户不需要安装或导入任何库,因为所有的函数都是R编程语言编程的基础函数,用户首先需要调用hist()函数来绘制给定数据的直方图,然后进一步使用lines()函数与density()函数相结合,这将导致在R编程语言的同一图上绘制的直方图的密度曲线。
hist() 是一个通用函数hist,用于计算给定数据值的直方图。
语法: hist(x, breaks = "Sturges", freq = NULL, probability = !freq, include.lowest = TRUE, right = TRUE, density = NULL, angle = 45, col = NULL, border = NULL, main = paste("Histogram of" , xname), xlim = range(breaks), ylim = NULL, xlab = xname, ylab, axes = TRUE, plot = TRUE, labels = FALSE, nclass = NULL, warn.unused = TRUE, ... )
lines() 是一个通用函数,它接收以各种方式给出的坐标,并将相应的点用线段连接起来。
语法:lines(x, ...)
density() 是一个通用函数 density,用于计算内核密度估计。
语法: density(x,…)
例子
gfg <-rnorm(500)
hist(gfg, prob = TRUE)
lines(density(gfg), col = "green")
输出
方法2:使用 geom_histogram()和geom_density()函数
在这个方法中,为了将直方图与拟合的密度曲线叠加起来,用户首先需要在R控制台中安装并导入ggplot2包,然后调用ggplot()函数,该函数将用所需的参数创建给定数据的绘图,并添加geom_histogram()函数来创建数据的直方图,并结合geom_density()函数在R编程语言中将密度曲线与直方图绘制出来。
geom_histogram() 函数用于在ggplot中创建给定数据的柱状图。
语法: geom_histogram(mapping = NULL, data = NULL, stat = “bin”, position = “stack”, …)
geom_density() 函数计算并绘制内核密度估计值,它是直方图的平滑版本。
语法
geom_density(mapping = NULL, data = NULL, stat = “density”, position = “identity”, …, na.rm = FALSE, orientation = NA, show.legend = NA,inherit.aes = TRUE, outline.type = “upper”)
例子
library("ggplot2")
gfg <-data.frame(x=rnorm(500))
ggplot(gfg, aes(x)) +geom_histogram(aes(y = stat(density))) +
geom_density(col = "green")
输出