如何在ggplot2中的自定义图例中更改线的角度

How to change angle of line in customized legend in ggplot2

我正在尝试向我的 ggplot 添加自定义图例,但图例框的线条呈一定角度。我想将该角度更改为 0 度。有什么办法吗?以下是示例图的代码。

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"))

我们可以看到图例框中的线条略微倾斜,我想让它们水平。

您可以更改线条在键中的绘制方式:我更改了 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"))