我正在尝试使用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, ...)感谢您对Pascal的帮助
发布于 2012-03-14 06:11:19
只是在geom_ribbon调用中没有将变量映射到y。添加y = y会让它对我起作用。一般来说,geom_ribbon不需要y美学,但我相信在堆叠的情况下是需要的。我假设有一个深思熟虑的理由来解释为什么,但你永远不会知道...
此外,ggplot2的所有源代码都在github上。
https://stackoverflow.com/questions/9692948
复制相似问题