R 在geom_smooth()中调整大小会使具有不同线型的图例看起来相同

R 在geom_smooth()中调整大小会使具有不同线型的图例看起来相同,r,ggplot2,R,Ggplot2,我想画六种不同的线型,例如: d = data.frame( x=sample(1:100,30,rep=T), y=sample(1:100,30,rep=T), exp=rep(c("foo","bar","baz","yak","yaz","bla"),5) ) ggplot(d, aes(x, y, color=exp, lty=exp)) + geom_point(alpha=0.15) + geom_smooth(size=2) 这给了我以下的传说: 显然,siz

我想画六种不同的线型,例如:

d = data.frame(
  x=sample(1:100,30,rep=T),
  y=sample(1:100,30,rep=T),
  exp=rep(c("foo","bar","baz","yak","yaz","bla"),5)
)
ggplot(d, aes(x, y, color=exp, lty=exp)) + 
geom_point(alpha=0.15) + 
geom_smooth(size=2)
这给了我以下的传说:

显然,
size=2
改变了这里的外观,现在您无法再区分不同的线型了。级别1、3和4看起来很相似,级别5和级别6也一样。当我将其调整为
size=1
(或完全忽略大小)时,我得到了所需的结果:


是否有任何方法可以为图例中的不同线型获得有意义的表示,即使绘图中的线条本身比默认线条厚?

您可以通过调整图例属性的
大小或
宽度来实现这一点。这些例子都是直接取自

(或)

也就是说,试试这个:

ggplot(d, aes(x, y, color=exp, lty=exp)) + 
geom_point(alpha=0.15) + 
geom_smooth(size=2) + 
theme(legend.key.size = unit(2, "cm"))
注意:如果出现
unit()
未找到错误,则可能需要加载
require(网格)

编辑:以下是我使用此代码得到的绘图,例如您发布的示例:

ggplot(d, aes(x, y, color=exp, lty=exp)) + 
    geom_point(alpha=0.15) + 
    geom_smooth(size=2, se=FALSE) + 
    theme(legend.key.size = unit(2, "cm"))

您可以通过调整图例属性的
大小
宽度
来实现这一点。这些例子都是直接取自

(或)

也就是说,试试这个:

ggplot(d, aes(x, y, color=exp, lty=exp)) + 
geom_point(alpha=0.15) + 
geom_smooth(size=2) + 
theme(legend.key.size = unit(2, "cm"))
注意:如果出现
unit()
未找到错误,则可能需要加载
require(网格)

编辑:以下是我使用此代码得到的绘图,例如您发布的示例:

ggplot(d, aes(x, y, color=exp, lty=exp)) + 
    geom_point(alpha=0.15) + 
    geom_smooth(size=2, se=FALSE) + 
    theme(legend.key.size = unit(2, "cm"))

你好!请把你的文章复制出来。阅读关于如何做到这一点的帖子。谢谢。我添加了一个更具体的例子。谢谢你的提示。你好!请把你的文章复制出来。阅读关于如何做到这一点的帖子。谢谢。我添加了一个更具体的例子。谢谢你的提示,太棒了,谢谢你。这也是我第一次看到维基。刚刚看过官方文件。太棒了,谢谢。这也是我第一次看到维基。刚刚看过官方文件。