我的例子是用简单的可用数据制作的:
data(Salaries, package="car")
library(tidyverse)
Run Code Online (Sandbox Code Playgroud)
运行时:
ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank))+
geom_point() +
geom_smooth(method="lm", size=0.5)+
facet_grid(~sex)
Run Code Online (Sandbox Code Playgroud)
我得到了这张图,它为每个等级创建了一条 lm 线:
但是当我使用
ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank))+
geom_point() +
geom_smooth(method="lm", colour="black", size=0.5)+
facet_grid(~sex)
Run Code Online (Sandbox Code Playgroud)
该图现在显示所有数据的唯一 lm 线:
知道发生了什么吗?为什么设置 colour="black" 会改变图形中 lm 线的整体外观?
发生这种情况是因为通过color在 中指定geom_smooth,您将覆盖代码顶行中设置的美观性。如果您希望所有组的线条都是黑色的,您可以group按geom_smooth以下方式使用 -aesthetic:
ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank))+
geom_point() +
geom_smooth(aes(group=rank), method="lm", color = "black", size=0.5)+
facet_grid(~sex)
Run Code Online (Sandbox Code Playgroud)
美学在每一层中重新使用:从 help(aes)
提供给 ggplot() 的美学被用作每一层的默认值。您可以覆盖它们,或为每一层提供不同的美感
当您将颜色定义为等级级别时,ggplot 就是这样做的。在您覆盖调用中的颜色设置(等级级别)时geom_smooth,ggplot 会删除用于绘制线条的级别。
你可以通过使用fillandshape=21和 using colorfor the line 来解决这个问题:
ggplot(Salaries, aes(x=yrs.since.phd, y=salary, fill=rank))+
geom_point(shape=21) +
geom_smooth(method="lm",
color="black",
size=0.5)+
facet_grid(~sex)
Run Code Online (Sandbox Code Playgroud)
添加se=FALSE到调用geom_smooth将删除彩色标准错误间隔。
产生这个情节:
| 归档时间: |
|
| 查看次数: |
23601 次 |
| 最近记录: |