【发布时间】:2012-04-03 22:55:17
【问题描述】:
我最近从 0.8.9 版升级到 ggplot2 0.9.0,现在我发现我的情节图例只显示情节中使用的因子水平(它省略了未使用的因子水平)。在它包含图例中的所有因子水平之前。我正在运行 Windows 7 和 R 2.15.0(今天之前的 2.14.2)。
还有人发现这个吗?有没有办法让未使用的因子水平显示在我的情节图例中?
library(ggplot2)
df <- data.frame(fruit = rep(c("apple", "orange"), times=11),
year = 1990:2011,
qty = rnorm(22, 100, 20))
# This plot only gives "apple" in the legend now.
# Before, I used to get both "apple" and "orange".
qplot(year, qty, data = subset(df, fruit=="apple"), colour = fruit)
传说中的 qplot() 曾经给我“苹果”和“橙色”(即使只有“苹果”的点)。现在我只得到了传说中的“苹果”。
出现此问题的原因 - 我正在制作许多数据集子集的图,并且我希望图例跨图标准化(通常我希望未使用的级别被自动删除并且不必键入 droplevels(),但是这个是我想要那些未使用的级别的一种情况)。如果这只是我的计算机本地的问题,我们深表歉意。
编辑:请注意,从 R 4.0.0 开始,上述代码不再产生 df$fruit 作为因素,这会改变下面问题和答案中 ggplot 的行为。重现使用:
df <- data.frame(
fruit = factor(rep(c("apple", "orange"), times=11)),
year = 1990:2011,
qty = rnorm(22, 100, 20)
)
【问题讨论】: