堆叠geom_ribbon

时间:2012-03-13 22:06:28

标签: r ggplot2

我正在尝试使用geom_ribbon来模仿geom_area的行为 但我没有成功。你有什么暗示为什么以下不起作用? 我使用了来自ggplot2 geom_area web pages的Hadley的陈述: “区域图是geom_ribbon的一个特例,其中范围的最小值固定为0,位置调整默认为position_stacked。”

test <- expand.grid(Param = LETTERS[1:3], x = 1:5)
test$y <- test$x

# Ok
p <- ggplot(test)
p <- p + geom_area(aes(x = x, y = y, group = Param, fill = Param), alpha = 0.3)
p

# not ok - initial idea
p <- ggplot(test)
p <- p + geom_ribbon(aes(x = x, ymin = 0, ymax = y, group = Param, fill = Param), alpha = 0.3, position = position_stack())
p

此外,我如何查看geom_XXX编码的函数代码? 我的传统方式给出了以下内容,这不是很有用:

> geom_ribbon
function (mapping = NULL, data = NULL, stat = "identity", position = "identity", 
    na.rm = FALSE, ...) 
GeomRibbon$new(mapping = mapping, data = data, stat = stat, position = position, 
    na.rm = na.rm, ...)

感谢您的帮助 问候 帕斯卡

1 个答案:

答案 0 :(得分:2)

您刚刚未在y来电中将变量映射到geom_ribbon。添加y = y会使其对我有用。一般来说,geom_ribbon不需要y美学,但我相信它会在堆叠的情况下发生。我认为有一个经过深思熟虑的推理,为什么会这样,但你永远不知道......

此外, ggplot2 的所有源代码都在github上。