如何在几何函数中使用相同的美学映射?

时间:2017-05-03 19:28:06

标签: r ggplot2

我有几个几何函数,特别是geom_pointgeom_abline。我想通过将color美学映射到自定义值(未由数据框中的列定义)来使其中一些颜色具有相同的颜色。

在下面的示例中,我希望线条与周围点的颜色相同(不在color='red'之外设置aes()或在原始数据中添加分组列。)

library(tidyverse)
ggplot(mtcars) +
  geom_point(aes(x=disp, y=wt, color='wt')) +
  geom_point(aes(x=disp, y=qsec, color='qsec')) +
  geom_abline(intercept=0, slope=0.01, aes(color='wt')) +
  geom_abline(intercept=20, slope=-0.01, aes(color='qsec'))

example_mapping_color_across_geoms 我该怎么做?

1 个答案:

答案 0 :(得分:3)

正如所讨论的here

这样做的方法是

library(tidyverse)
ggplot(mtcars) +
  geom_point(aes(x=disp, y=wt, color='wt')) +
  geom_point(aes(x=disp, y=qsec, color='qsec')) +
  geom_abline(aes(intercept=b, slope=m, color='wt'), data.frame(b=0, m=0.01)) + 
  geom_abline(aes(intercept=b, slope=m, color='qsec'), data.frame(b=20, m=-0.01))