在GGPLOT2,以下命令p <- qplot(wt, mpg, data=mtcars, colour=factor(cyl))
取自这里绘制与每个点的散点图,根据着色因子
我想与因子的geom_smooth不论但保持根据个人的因素点的颜色,以适应所有数据。 p + geom_smooth(method="lm")
做在每个因子的线性拟合。 我该怎么做呢?
在GGPLOT2,以下命令p <- qplot(wt, mpg, data=mtcars, colour=factor(cyl))
取自这里绘制与每个点的散点图,根据着色因子
我想与因子的geom_smooth不论但保持根据个人的因素点的颜色,以适应所有数据。 p + geom_smooth(method="lm")
做在每个因子的线性拟合。 我该怎么做呢?
您可以通过逐步从“qplot”包装函数返回并直接使用“ggplot”和几何功能做到这一点很容易。
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(aes(colour=factor(cyl))) +
geom_smooth(method="lm")
第1步 :设置您最初的“ggplot”设置。 这些是你想成为的几何功能的默认设置。
ggplot(mtcars, aes(x=wt, y=mpg))
在这种情况下,我们使用的是“mtcars”数据“重量”分配到分配给y轴与x轴和“MPG”与所有几何形状。 通过在开始指定这些,我们减少搞乱的东西了,当复制粘贴到几何功能的风险。
步骤2:绘制点的几何形状,使用“CYL”的因素上色的点。 这就是原来的“qplot”功能在做什么,但我们多一点明确指定它。
geom_point(aes(colour=factor(cyl)))
步骤3:绘制平滑的线性模型。 这也正是OP之前写的,但现在,着色的审美是默认的不再一部分,该模型得出的预期。
geom_smooth(method="lm")
链这一切连同+
等瞧!
供参考 :你可以很容易地在每层明确的,像这样做:
ggplot() +
geom_point(data=mtcars, aes(x=wt, y=mpg, colour=factor(cyl))) +
geom_smooth(data=mtcars, method="lm", aes(x=wt, y=mpg))
在我看来,你会发现ggplot
如果你开始使用轻松很多ggplot()
函数,而不是qplot
。 美学的控制使得很多更有意义。 在这种情况下,你只要建立自己的基地:
p <- ggplot(mtcars, aes(wt, mpg))
然后建立两个geom
顶部S:
p + geom_point(aes(colour = factor(cyl))) +
geom_smooth(method = "lm")
让我知道,如果这是你不追求的。
我同意从@alexwhan和@Dinre的ggplot()+ geom_point以前的答案(...)+ ...是解决这个问题的最好的方法
但是,如果你只是想修改您的解决方案尝试
p + geom_smooth(method = 'lm', aes(colour = NA), colour = 'magenta')