【问题标题】:Stacked cumulative histograms/area plot with R使用 R 的堆叠累积直方图/面积图
【发布时间】: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


【解决方案1】:

这就是你要找的吗?

data$V1 <- as.factor(data$V1)
ggplot(data,aes(group=V1,fill=V1,x=V2))+
  geom_histogram()

【讨论】:

  • 是的,它朝着正确的方向发展,但我仍然有一些问题(见编辑)
猜你喜欢
  • 2011-01-15
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多