我正在尝试使用ggplot生成堆积区域图。这是一些代码;
DATA <- data.frame("Band" = rep(c(1:10), each = 10), "Object" = rep(c("Tree",
"Car", "Table", "Moon", "Tiger")), "Number" = runif(100, 1, 100), "Colour" =
rep(c("Green", "Not Green"), each = 5))
ggplot(DATA, aes(x = Band, y = Number)) +
geom_area(aes(colour = Colour, fill = Colour), position = 'fill')
我最终得到了一个奇怪的“锯齿”图案,而不是两个实心多边形。 Band
是整数还是数字并不重要。如果我将Band
视为一个因素,那么我可以获得叠加的行,但它们之间存在较大的间隙。
这里有一些类似的问题; Making a stacked area plot using ggplot2或stacked area graph in ggplot2 returned as stacked lines,但建议的答案似乎无法解决我的问题。我想我犯了一个愚蠢的错误,但我无法弄明白它是什么。任何建议都非常感谢。谢谢!
答案 0 :(得分:0)
Numbers
需要汇总到Colour
内的总计数,而不是每个Object
的单独值。
library(dplyr)
DATA <- DATA %>% group_by(Colour, Band) %>% summarise_at(.vars = "Number", funs(sum))
然后上面的ggplot
代码运行正常。