【发布时间】:2012-11-14 01:36:54
【问题描述】:
使用这些数据:
library(ggplot2)
dd <- data.frame(id = c("A", "A", "B", "B"), prepost = c("pre", "post"),
value = 1:4)
这个有效:
qplot(id, value, data = dd, fill = prepost, geom = "bar")
但是,下一个给出了指示的错误消息。两者的唯一区别是在命令末尾添加了group = prepost;但是,因为我们已经写了fill = prepost,所以无论如何它应该是默认组。
> qplot(id, value, data = dd, fill = prepost, geom = "bar", group = prepost)
Error in pmin(y, 0) : object 'y' not found
我们可以通过像这样添加stat = "identity" 来修复最后一个:
qplot(id, value, data = dd, fill = prepost, geom = "bar", group = prepost,
stat = "identity")
我有两个问题:
(a) 为什么给出错误信息的qplot 在其他人正常工作时却不工作?
(b) 如果我们使用连续的y 美学和geom_bar,那么如果不指定stat 会发生什么?从第一个 qplot 开始,似乎在这种情况下它的行为就像 stat="identity" 但在存在 group 时指定 stat="identity" 或不显示差异。
(顺便说一句,这个问题似乎有些相关,尽管它的不同之处在于它似乎无法回答这个问题:Issue with ggplot2, geom_bar, and position="dodge": stacked has correct y values, dodged does not)
【问题讨论】: