我最近从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(),但这是一个例子)如果我想要那些未使用的级别)。抱歉,这仅是我的计算机本地的问题。
最佳答案
是的,您想将drop = FALSE
添加到您的色标中:
ggplot(subset(df,fruit == "apple"),aes(x = year,y = qty,colour = fruit)) +
geom_point() +
scale_colour_discrete(drop = FALSE)