1

我知道我不是第一个在这个领域提出问题的人,但我一直无法找出解决我特定困境的方法。这是我的问题的简化示例。

    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 调用。

不,我并没有真正测量鸭子中任何东西的体积,尽管学习起来真的很有趣......

4

1 回答 1

5

覆盖美学映射:

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

我总是试图通过将它们设置为来覆盖美学NULL,但出于某种原因,直觉通常是错误的。

于 2013-07-26T14:33:15.290 回答