首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当同时需要"size“美学和geom_smooth时更改图例外观

当同时需要"size“美学和geom_smooth时更改图例外观
EN

Stack Overflow用户
提问于 2019-05-15 23:46:50
回答 1查看 419关注 0票数 2

我有一个带有连续x和y变量的图,第三个连续变量映射到"size“美学,第四个离散变量映射到"shape”美学。如果我只指定geom_point()," size“比例的图例将显示不同大小的项目符号,这很好,但如果我还指定geom_smooth,图例将在项目符号上显示一条线,这不是我想要的。在指定geom_smooth()时,是否可以在图例中仅保留项目符号

我试着用

代码语言:javascript
运行
复制
guides(size=guide_legend(override.aes=list(shape="circle")))

但这并不管用。

这是一个MRE:

代码语言:javascript
运行
复制
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()

上面的代码生成了想要的"size“图例。

我想要的是按组添加具有不同线型的平滑线:

代码语言:javascript
运行
复制
ggplot(df, aes(x=a, y=b, shape=d, size=c)) + 
  geom_point() + 
  geom_smooth(method="lm", aes(linetype=d), color="black")

大小的图例现在具有与项目符号重叠的线。

当我添加geom_smooth()时,我也希望有第一个代码生成的图例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-16 00:19:32

要将图例(在本例中为线型和大小)分开,可以为它们指定不同的标题。这可能和在其中添加一个空格一样小,比如"d""d ",尽管这可能不是最好的想法。

我为线型赋予了自己的标题,这样它就有了自己的独立图例。我还从尺寸图例的aes中删除了线型,方法是将其线型设置为NA (NULL也可以)。

代码语言:javascript
运行
复制
library(ggplot2)

set.seed(515)
df <- tibble::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(method="lm", aes(linetype=d), color="black") +
  guides(linetype = guide_legend(title = "d - line"),
         size = guide_legend(title = "c", override.aes = list(linetype = NA)))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56153226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档