选择vline的颜色,使它们与使用geom_line()生成的线条的颜色相匹配

时间:2013-06-07 11:22:39

标签: r ggplot2

假设我正在绘制钻石数据集中的两个密度:

d_1 <- subset(diamonds, color %in% c("D", "E"))
ggplot(data = d_1, aes(x = price,colour=color)) + geom_density() + 
      geom_vline(xintercept = 5000) + geom_vline(xintercept = 2500)

我的问题是关于我可以选择vlines的方式,以便它们与用于geom_density发行版的颜色相匹配。

我知道我可以使用geom_vline(xintercept = 2500, colour = "red"),但我怎样才能geom_vline继承aes中用于分发的颜色。

1 个答案:

答案 0 :(得分:2)

您可以在数据框中添加新列,您为每种颜色设置xintercept值

d_1$xint<-ifelse(d_1$color=="D",2500,5000)

然后,您只需要进行geom_vline()次调用,aes()内置xintercept=到新列,colour=到列color

ggplot(data = d_1, aes(x = price,colour=color)) + geom_density()+
  geom_vline(aes(xintercept=xint,colour=color))

enter image description here