2012-04-20 61 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()