为了账号安全,请及时绑定邮箱和手机立即绑定

控制ggplot2图例外观而不会影响绘图

控制ggplot2图例外观而不会影响绘图

RISEBY 2019-10-08 10:19:45
我正在用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 unitggplot(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()但是当然,它仍然会影响剧情和传奇:点数我想将线用于图,将点/点用于图例。所以我想问两件事:如何在不更改图的情况下更改图例中的线宽?如何在图中绘制线条,但在图例中绘制点/点/正方形?
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

要仅在图例中更改线宽,应使用function guides(),然后与and set 一起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)))

//img1.sycdn.imooc.com//5d9bf67a00014b2224001500.jpg

要在图例中获得图例和线条中的点,必须添加变通办法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)))

//img1.sycdn.imooc.com//5d9bf67f0001d27724001500.jpg

查看完整回答
反对 回复 2019-10-08
  • 1 回答
  • 0 关注
  • 457 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信