向直方图和累积直方图添加密度线

Posted

技术标签:

【中文标题】向直方图和累积直方图添加密度线【英文标题】:Add density lines to histogram and cumulative histogram 【发布时间】:2012-12-07 07:22:57 【问题描述】:

我想给直方图和累积直方图添加密度曲线,像这样:

这是我能做到的:

hist.cum <- function(x, plot=TRUE, ...)
  h <- hist(x, plot=FALSE, ...)
  h$counts <- cumsum(h$counts)
  h$density <- cumsum(h$density)
  h$itensities <- cumsum(h$itensities)
  if(plot)
    plot(h)
  h

 x <- rnorm(100, 15, 5)
hist.cum(x)
 hist(x, add=TRUE, col="lightseagreen")

 #
lines (density(x), add = TRUE, col="red")

【问题讨论】:

densityfrequency 的规模不同。如果您进行更多搜索,我很确定您会在 SO 中找到有效的示例。您在发帖之前确实搜索过 SO,对吧? 您需要多少份副本? ***.com/questions/5688082/…***.com/questions/9246040/…***.com/questions/1497539/…***.com/questions/12945951/… @DWin 谢谢你的建议,我都看过了,但我不知道如何叠加累积和常规密度曲线... 【参考方案1】:

提供没有解释:

## Make some sample data
x <- sample(0:30, 200, replace=T, prob=15 - abs(15 - 0:30))

## Calculate and plot the two histograms
hcum <- h <- hist(x, plot=FALSE)
hcum$counts <- cumsum(hcum$counts)
plot(hcum, main="")
plot(h, add=T, col="grey")

## Plot the density and cumulative density
d <- density(x)
lines(x = d$x, y = d$y * length(x) * diff(h$breaks)[1], lwd = 2)
lines(x = d$x, y = cumsum(d$y)/max(cumsum(d$y)) * length(x), lwd = 2)

【讨论】:

以上是关于向直方图和累积直方图添加密度线的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用car包的scatterplotMatrix函数绘制散点图矩阵并添加线性和loess拟合线在主对角线上放置箱图密度或直方图在图像边缘添加轴须图rug可以基于分组变量绘制散点图矩阵

ggplot2中具有分组密度线的直方图

如何在 Python 中向直方图添加特定的 x 刻度线? [复制]

数据分析概况02:《深入浅出统计学》——基本统计量1

在直方图上添加密度曲线

如何向ggplot直方图添加均值和模式?