bal*_*zar 68 plot r legend ggplot2
我正在用ggplot2绘制线条,如下所示:
ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + theme_bw()
Run Code Online (Sandbox Code Playgroud)
.
我发现传奇标记很小,所以我希望它们更大.如果我改变大小,情节上的线条也会改变:
ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line(size=4) + theme_bw()
Run Code Online (Sandbox Code Playgroud)
.
但是我只想在图例中看到粗线,我希望图上的线条很薄.我尝试使用,legend.key.size但它改变了标记的正方形,而不是线条的宽度:
library(grid) # for unit
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw() + theme(legend.key.size=unit(1,"cm"))
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用积分:
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + geom_point(size=4) + theme_bw()
Run Code Online (Sandbox Code Playgroud)
但当然它仍会影响情节和传奇:

我想使用线条和图例的点/点.
所以我要问两件事:
Did*_*rts 101
要改变线宽只有在传说中,你应该使用功能guides(),然后colour=使用guide_legend()与override.aes=和设置size=.这将覆盖绘图中使用的大小,并将仅为图例使用新的大小值.
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw()+
guides(colour = guide_legend(override.aes = list(size=3)))
Run Code Online (Sandbox Code Playgroud)

要获取图例中的点和绘图中的线条,将添加geom_point(size=0)以确保点不可见,然后guides()设置linetype=0为删除线并size=3获得更大的点.
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw()+
geom_point(size=0)+
guides(colour = guide_legend(override.aes = list(size=3,linetype=0)))
Run Code Online (Sandbox Code Playgroud)
