R / ggplot2 / geom_density:如何在单元格中使用值而不是条目数

时间:2018-07-04 09:09:12

标签: r ggplot2

这是我的第一个堆栈溢出帖子(因此无法发布图片)。我加入只是为了发布这个问题,因为它使我发疯。到目前为止,我已经满足了先前的问题,但是花了数小时寻找该问题的解决方案,而且(令人惊讶的是,或者除非我错过了什么,否则)什么都没发现。

我敢肯定,这是一个令人尴尬的简单解决方法,但这是可行的。

这是我正在使用的数据的简化版本:

Gender = c("F", "F", "F", "M", "M", "M")

Year = c(2014, 2015, 2016, 2014, 2015, 2016)

Total = c(820, 710, 420, 450, 360, 530)

data = as.data.frame(cbind(Gender, Year, Total)) 

我要做的是创建一个密度图,该图显示在这3年领带期内男性/女性总数的比例不断变化。这是我得到的最接近的东西:

ggplot(data, aes(as.numeric(Year), group=Gender, fill=Gender)) + 
  geom_density(position="fill")

但是,发生的是ggplot仅显示2个相等大小的矩形,一个在另一个矩形上。

我认为这是在ggplot读取Gender条目的数量(3 + 3)的情况下发生的,因此请创建相等的条形图。

问题是,当形成每年的M / F分布时,我无法让它“访问”单元格中的值。

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

由于您已经计算了y值,因此您可能希望使用geom_area而不是geom_density

data = as.data.frame(cbind(Gender, as.numeric(Year), as.numeric(Total))) 

ggplot(data, aes(x = Year, y = Total, fill = Gender)) + 
  geom_area(alpha = .6, position = "identity")

enter image description here