gpt4 book ai didi

r - 在不影响情节的情况下控制ggplot2图异常(exception)观

转载 作者:行者123 更新时间:2023-12-02 04:43:20 25 4
gpt4 key购买 nike

我正在像这样使用 ggplot2 绘制线条:

ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + theme_bw()

current plot .

我发现图例标记很小,所以我希望它们更大。如果我改变大小,绘图上的线条也会改变:

ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line(size=4) + theme_bw()

thick plot lines .

但我只想在图例中看到粗线条,我希望情节上的线条很细。我尝试使用 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"))

big legend keys

我也试过用积分:

ggplot(iris,aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + geom_point(size=4) + theme_bw()

但当然它仍然会影响情节和图例:

points

我想用线条来绘制情节,用点/点来绘制图例。

所以我想问两件事:

  1. 如何在不改变情节的情况下改变图例中的线条宽度?
  2. 如何在图中画线,但在图例中画点/点/方 block ?

最佳答案

要仅在图例中更改线宽,您应该使用函数 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)))

enter image description here

要获取图例中的点和绘图中的线,解决方法是添加 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)))

enter image description here

关于r - 在不影响情节的情况下控制ggplot2图异常(exception)观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35500993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com