如何在R中的ggplot2中绘制“阶跃”或“阶梯”直方图?类似的东西:
其中每条水平线的宽度表示bin大小(x轴值),高度对应于该bin中数据的 fraction (与附加图像不同)概率密度!)。有没有办法用geom_histogram
?
答案 0 :(得分:10)
生成一些数据:
foo <- data.frame(bar=rnorm(100))
具有步进几何的直方图并在y轴上计数:
ggplot(foo,aes(x=bar)) + stat_bin(geom="step")
在y轴上具有阶梯几何和密度的直方图:
ggplot(foo,aes(x=bar)) + stat_bin(aes(y=..density..),geom="step")
并且“落入该垃圾箱的数据分数”:
ggplot(foo,aes(x=bar)) + stat_bin(aes(y=..count../sum(..count..)),geom="step")
答案 1 :(得分:2)
可能是其他更漂亮的方法,但这是一个想法。
foo <- data.frame(bar = rnorm(100)) + theme_bw()
p <- ggplot(data = foo, aes(x = bar, y = ..count../sum(..count..))) ## or aes(x = bar, y = ..density..) if you want that
p + geom_histogram(size = 2, colour = "red", fill = "white") + geom_histogram(colour = "transparent", fill = "white")
修改强>
geom_histogram(size = 2, colour = "red", fill = "white")
创造了这个
我将轮廓的粗细编辑为size = 2
,使最终输出看起来不错。在这个阶段看起来很糟糕。要删除内部线条,请添加geom_histogram(colour = "transparent", fill = "white")
,这将在顶部绘制另一个直方图,覆盖内部线条(以及一些轮廓,这就是为什么我认为size = 2
看起来不错)