通过因子GGPLOT2颜色geom_point但geom_smooth基础上的所有数据(ggplot

2019-09-03 08:18发布

在GGPLOT2,以下命令p <- qplot(wt, mpg, data=mtcars, colour=factor(cyl))取自这里绘制与每个点的散点图,根据着色因子

我想与因子的geom_smooth不论但保持根据个人的因素点的颜色,以适应所有数据。 p + geom_smooth(method="lm")做在每个因子的线性拟合。 我该怎么做呢?

Answer 1:

您可以通过逐步从“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))


Answer 2:

在我看来,你会发现ggplot如果你开始使用轻松很多ggplot()函数,而不是qplot 。 美学的控制使得很多更有意义。 在这种情况下,你只要建立自己的基地:

p <- ggplot(mtcars, aes(wt, mpg))

然后建立两个geom顶部S:

p + geom_point(aes(colour = factor(cyl))) +
  geom_smooth(method = "lm")

让我知道,如果这是你不追求的。



Answer 3:

我同意从@alexwhan和@Dinre的ggplot()+ geom_point以前的答案(...)+ ...是解决这个问题的最好的方法

但是,如果你只是想修改您的解决方案尝试

p + geom_smooth(method = 'lm', aes(colour = NA), colour = 'magenta')


文章来源: ggplot2 colour geom_point by factor but geom_smooth based on all data
标签: r ggplot2