R 为回归线创建不同的颜色

R 为回归线创建不同的颜色,r,colors,ggplot2,R,Colors,Ggplot2,我正在创建一个散点图(大约1500000个点),并基于一个因子变量对其进行回归(见下面的“半”)。图片如下: 正如您所见,很难看到“红色”回归线 以下是数据: For_Cov Per_chg halfs 1 0.8372001 0.002400000 upper half 2 0.7236001 0.002800111 upper half 3 0.6036000 0.000800000 upper half 4 0.8540000 0.00000

我正在创建一个散点图(大约1500000个点),并基于一个因子变量对其进行回归(见下面的“半”)。图片如下:

正如您所见,很难看到“红色”回归线

以下是数据:

  For_Cov     Per_chg      halfs
  1  0.8372001 0.002400000 upper half
  2  0.7236001 0.002800111 upper half
  3  0.6036000 0.000800000 upper half
  4  0.8540000 0.000000000 upper half
  5  0.9080001 0.003200000 upper half
  6  0.8248000 0.000000000 upper half
  7  0.1132000 0.000000000 upper half
  8  0.2044000 0.007600000 upper half
  9  0.2476001 0.085200000 upper half
  10 0.2368000 0.003600000 upper half
代码如下:

 ggplot(grid_gdp_full, aes(x = For_Cov, y = Def_Chg, group = factor(halfs))) + 
    geom_point(aes(colour = halfs), alpha = 0.1) +
    stat_smooth(method = "lm", formula = y ~ x + I(x^2), size = 4, fullrange=TRUE,     aes(group = halfs, colour = halfs), alpha = 1) +
    xlab("Initial") +
    ylab("Percent") +
    ylim(0,0.10) +
    scale_x_reverse() +
    theme_bw() +theme(
    axis.text=element_text(size=12)
    ,axis.title=element_text(size=14,face="bold")
    ,plot.background = element_blank()
    ,panel.grid.major = element_blank()
    ,panel.grid.minor = element_blank()
    ,panel.border = element_blank()
    ,panel.background = element_blank()
     ) +
     theme(axis.line = element_line(color = 'black')) 
是否有人知道如何更改代码,使回归线具有不同的颜色(回归线由stat_smooth创建)-可能是两个因子级别的灰色和蓝色,而不更改点的初始颜色

这是我目前使用的代码,我仍然无法获得两条不同颜色的线:

 ggplot(grid_gdp_full, aes(x = For_Cov, y = Def_Chg, fill = factor(halfs))) + 
   geom_point(aes(colour = halfs), alpha = 0.1, colour="transparent",shape=21) +
   stat_smooth(method = "lm", formula = y ~ x + I(x^2), size = 2, fullrange=TRUE, aes(group = factor(halfs)), alpha = 1) +
   xlab("Initial") +
   ylab("Percent") +
   ylim(0,0.1) +
   scale_x_reverse() +
   theme_bw() +theme(
     axis.text=element_text(size=12)
     ,axis.title=element_text(size=14,face="bold")
     ,plot.background = element_blank()
     ,panel.grid.major = element_blank()
     ,panel.grid.minor = element_blank()
     ,panel.border = element_blank()
     ,panel.background = element_blank()
   ) +
   theme(axis.line = element_line(color = 'black')) +
   scale_colour_manual(values = c("red","blue")) + 
   scale_fill_manual(values = c("grey","green"))

dev.off()

利用点形状21,我们可以对点使用
填充
,对线使用
颜色
。根据我们的需要,通过手动比例设置颜色。请注意
geom_点
中的
color=transparent
,因此我们删除了点周围的颜色边框

ggplot(mtcars, aes(x=cyl,y=mpg,fill=factor(gear))) +
            geom_point(aes(fill=factor(gear)),colour="transparent",shape=21) + 
            stat_smooth(aes(colour=factor(gear)),method="lm",se = FALSE) + 
            scale_colour_manual(values = c("red","blue", "green")) + 
            scale_fill_manual(values = c("orange","pink", "red"))

利用点形状21,我们可以对点使用
填充
,对线使用
颜色
。根据我们的需要,通过手动比例设置颜色。请注意
geom_点
中的
color=transparent
,因此我们删除了点周围的颜色边框

ggplot(mtcars, aes(x=cyl,y=mpg,fill=factor(gear))) +
            geom_point(aes(fill=factor(gear)),colour="transparent",shape=21) + 
            stat_smooth(aes(colour=factor(gear)),method="lm",se = FALSE) + 
            scale_colour_manual(values = c("red","blue", "green")) + 
            scale_fill_manual(values = c("orange","pink", "red"))

好的。我现在看到了您想要的(我想…):您希望线编组的颜色与点编组的颜色不同。实际上,您需要四种颜色:两种用于点编组,两种用于线编组


这对您的样本有效,用
重新编码,以确定。我现在看到了您想要的(我想…):您希望线编组的颜色与点编组的颜色不同。实际上,您需要四种颜色:两种用于点编组,两种用于线编组


这对您的示例有效,使用
重新编码,因为您的表有一个Per_Chg列,但您的代码引用了Def_Chg列???感谢您的帮助,但我仍然没有得到正确的答案。。我附上了我的更新代码!我在你的样本上试过(但需要将一些“上限”改为“下限”,这样就有了两个因素),结果成功了。我将复制绘图并将其添加到答案中。您的表有一个Per_Chg列,但您的代码引用了Def_Chg列???谢谢您的帮助,但我仍然没有得到正确的答案。。我附上了我的更新代码!我在你的样本上试过(但需要将一些“上限”改为“下限”,这样就有了两个因素),结果成功了。我将复制绘图并将其添加到答案中。非常巧妙地使用了形状21。非常巧妙地使用了形状21。我在样本数据上进行了尝试,编辑中记录了修改。我在样本数据上进行了尝试,编辑中记录了修改。