2016-02-29 51 views
3

我正在尝试将自定义图例添加到我的ggplot,但图例框具有一定角度的线条。我想改变这个角度到0度。有没有办法做到这一点?以下是示例图的代码。如何更改ggplot2中自定义图例中的线的角度

ggplot()+geom_abline(aes(color="black",,slope=1,intercept = 0))+ 
    geom_abline(aes(color="red",slope=0.5,intercept = 0))+ 
    scale_color_manual(values=c("black"="black","red"="red")) 

我们可以看到,图例框中的线稍微倾斜,我想使它们水平。 enter image description here

+0

使用'geom_line',而不是'geom_abline'和截距和斜率计算点对。 – Roland

+0

@Roland我可以做到这一点,但我正在绘制来自各种回归的多条线,所以我试图弄清楚是否有任何方便的功能可以利用,比如'override.aes'或其他。 –

回答

5

可以更改线路是如何在关键得出:我改变了segmentsGrob的y0y1,使他们在中心(= 0.5)。 (PS看看GeomAbline$draw_key你改变它之前)

library(ggplot2) 
library(grid) 

GeomAbline$draw_key <- function(data, params, size) 
{ 
    segmentsGrob(0, 0.5, 1, 0.5, gp = gpar(col = alpha(data$colour, 
     data$alpha), lwd = data$size * .pt, lty = data$linetype, 
     lineend = "butt")) 
} 

ggplot() + geom_abline(aes(color="black",slope=1,intercept = 0))+ 
    geom_abline(aes(color="red",slope=0.5,intercept = 0))+ 
    scale_color_manual(values=c("black"="black","red"="red")) 
相关问题