2013-07-26 87 views
1

我知道我不是第一個在這個領域提出問題的人,但我一直無法找到解決方案來解決我的特殊困境。這是我的問題的一個簡明例子。斜線ggplot2 legend-geom_point和geom_abline在一起

data<-data.frame(Est=c(1:20,1:20),Measured=c(1:5,5:9,1:6,3:6,1:6,3:6,1:4,4,4:8),variable=c(rep("Plot1",20),rep("Plot2",20))) 

p<-ggplot(data,aes(y=Est,x=Measured,shape=variable)) 
p<- p + geom_point(stat="identity") +coord_fixed(xlim=c(0,25),ylim=c(0,25)) + theme_bw() 

p #If you plot the figure at this point, the points stand alone in the legend 
p<-p+ geom_abline(intercept=0,slope=1,aes(linetype="1:1",color="1:1"),show_guide=TRUE) 

p # Once the geom_abline is added, there are lines through the points. :(

p<-p+scale_color_manual(name="Lines", 
         values=c("1:1"="black")) 
p<- p + scale_linetype_manual(name="Lines", 
           values=c("1:1"=2))    

p<-p + scale_shape_manual(values=c(0,20), name = "") 

p<- p+xlab(expression(paste("Measured volume(",ducks^{3},"",ha^{-1},")",sep=""))) 
p<-p+ ylab(expression(paste("Estimated volume (",ducks^{3},"",ha^{-1},")",sep=""))) 

正如你所看到的,對於點的傳說包括斜槓(我認爲這實際上是一條線),我真的喜歡這點是獨自一人。

雖然示例代碼只有1行和線型,但我所做的實際圖形包含五條不同線條的不同顏色和線型,因此我需要一個解決方案,允許我使用顏色和線型包含多個geom_abline調用指定。

不,我真的不測量的鴨子什麼的體積,雖然這將是非常有趣的研究...

回答

5

覆蓋的審美映射:

p + guides(shape = guide_legend(override.aes = list(linetype = 0))) 

我總是最後試圖通過將它們設置爲NULL來覆蓋美學,但出於某種原因,直覺通常是錯誤的。

+0

完美!謝謝,@joran! – Nan