R 更改图例的外观,当两个;“尺寸”;要求美观和几何光滑

R 更改图例的外观,当两个;“尺寸”;要求美观和几何光滑,r,ggplot2,R,Ggplot2,我有一个包含连续x和y变量的绘图,第三个连续变量映射到“尺寸”美学,第四个离散变量映射到“形状”美学。如果我只指定geom_point(),则“大小”刻度的图例显示不同大小的项目符号,这很好,但是如果我还指定geom_smooth,则图例显示项目符号上方的一条线,这不是我想要的。在指定geom_smooth()时,是否有办法仅在图例中保留项目符号 我试着用 guides(size=guide_legend(override.aes=list(shape="circle"))) 但这并不奏效 这

我有一个包含连续x和y变量的绘图,第三个连续变量映射到“尺寸”美学,第四个离散变量映射到“形状”美学。如果我只指定
geom_point()
,则“大小”刻度的图例显示不同大小的项目符号,这很好,但是如果我还指定
geom_smooth
,则图例显示项目符号上方的一条线,这不是我想要的。在指定
geom_smooth()
时,是否有办法仅在图例中保留项目符号

我试着用

guides(size=guide_legend(override.aes=list(shape="circle")))
但这并不奏效

这是一个MRE:

df <- tibble(a=rnorm(100), b=rnorm(100), c=rnorm(100), d=rep(c("A", "B"), 50))
ggplot(df, aes(x=a, y=b, shape=d, size=c)) + 
  geom_point()
“大小”的图例现在具有与项目符号重叠的线条


我希望在添加
geom_smooth()

将图例与第一个代码生成的图例分开。在这种情况下,线型和大小可以给它们不同的标题。这可能和在一个空间中添加一个空格一样微不足道,比如
“d”
“d”
,尽管这可能不是最好的主意

我给线型赋予了它自己的标题,所以它有了自己独立的图例。我还从尺寸图例的
aes
中删除了线型,给它一个
NA
NULL
也可以)

库(ggplot2)
种子集(515)

df在你的
geom_smooth
中添加
show.legend=F
将阻止它在任何传奇中显示,但我确实希望geom_smooth的图例能够显示出来,以便读者了解线条所属的组。
ggplot(df, aes(x=a, y=b, shape=d, size=c)) + 
  geom_point() + 
  geom_smooth(method="lm", aes(linetype=d), color="black")