向直方图和累积直方图添加密度线
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")
【问题讨论】:
density
与frequency
的规模不同。如果您进行更多搜索,我很确定您会在 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可以基于分组变量绘制散点图矩阵