【发布时间】:2018-10-25 14:19:32
【问题描述】:
我有一些看起来像的数据
library(data.table)
set.seed(1)
data <- data.table( sample(1:6,1000,replace=T), rnorm(1000, mean = 5))
V1 V2
1: 2 5.077303
2: 3 4.703131
3: 4 3.816758
4: 6 5.011293
5: 2 5.991601
---
996: 5 5.114406
997: 4 4.607735
998: 2 6.652358
999: 2 3.756302
1000: 2 4.088074
我想创建一个图,其中包含某种累积直方图或累积面积图,由 V1 填充,V2 在 x 轴上,彼此堆叠。结果应如下所示:
http://i.imgur.com/GGywhzu.png
这是我迄今为止尝试过的:
library(ggplot2)
ggplot(data, aes(group=V1, x = V2, fill=as.factor(V1))) +
geom_histogram(aes(y=cumsum(..count..)/sum(..counts..)), bins = 50)
但是,它不会将数据正确地堆叠在一起。使用面积图而不是直方图条也会更好。这是上面的代码产生的: plot
【问题讨论】:
-
使用
sample()时,请使用set.seed(),这样您的数据是可重现的。当一个简单的data.frame可能工作得很好时,最好避免像data.table这样的示例中不必要的依赖关系。对于您的示例,您在 x 和 y 轴上到底想要什么。我想你至少已经尝试过画这个了。分享您尝试过的代码并描述您卡在哪里。 -
谢谢,我补充了一些细节,希望现在更清楚了
标签: r histogram stacked-area-chart