假设我正在绘制钻石数据集中的两个密度:
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
中用于分发的颜色。
答案 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))