2012-04-20 41 views
3

我有一个图例,其图例应该包含两个级别。 Ggplot显示了六个级别的图例,其中包括四个没有出现在数据框中的图例。这个问题的简单再现如下所示:ggplot图例显示数据中不存在的水平

x <- seq(from=1, to=10, by=0.5) 
y.2 <- x^2 
y.3 <- x^3 
exponent.2 <- 2 
exponent.3 <- 3 
data2 <- data.frame(x=x, y=y.2, exponent = exponent.2) 
data3 <- data.frame(x=x, y=y.3, exponent = exponent.3) 
data <- rbind(data2, data3) 
p <- ggplot(data,aes(x,y,group=exponent, color=exponent)) + geom_line() 
p 

我明显做错了什么,但需要帮助找到问题。

回答

5

GGPLOT2解释指数作为连续变量;因此它会显示类似于pretty(c(2, 3))会返回的多个休息时间。

您可以使用colour = factor(exponent),或明确指定颜色中断。

+0

谢谢。这正是我需要的。 – 2012-04-20 21:42:57

3

尝试

p <- ggplot(data,aes(x,y,group=factor(exponent), color=factor(exponent))) + geom_line()