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

8

我试图向我的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"))

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

使用geom_line替代geom_abline,并从截距和斜率计算点对。 - Roland
@Roland 我可以这样做,但我正在绘制来自各种回归的多条线,因此我正在尝试弄清楚是否有任何方便的功能可以利用,例如override.aes或其他什么。 - A Gore
1个回答

12

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

谢谢。[我替换了data $ size为0.5才使它工作] - Hugues

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接