我正在用ggplot2绘制线条,如下所示:
ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + theme_bw()
我发现传奇标记很小,所以我希望它们更大。如果我改变大小,情节上的线也会改变:
ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line(size=4) + theme_bw()
但我只想在图例中看到粗线,我希望图上的线条很薄。我尝试使用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"))
我也尝试过使用积分:
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + geom_point(size=4) + theme_bw()
但当然它仍会影响情节和传奇:
我想在图例中使用线条,为图例使用点/点。
所以我要问两件事:
答案 0 :(得分:97)
要仅在图例中更改线宽,您应使用函数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)))
要获取图例中的点和绘图解决方法中的线条,请添加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)))