我正在尝试使用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, ...)
感谢您的帮助 问候 帕斯卡
答案 0 :(得分:2)
您刚刚未在y
来电中将变量映射到geom_ribbon
。添加y = y
会使其对我有用。一般来说,geom_ribbon
不需要y
美学,但我相信它会在堆叠的情况下发生。我认为有一个经过深思熟虑的推理,为什么会这样,但你永远不知道......
此外, ggplot2 的所有源代码都在github上。