ggplot2:彩色垂直线条

时间:2015-02-11 17:34:18

标签: r plot ggplot2

我想用不同颜色的垂直线创建一个ggplot图。这是实现这一目标的一种方法。

mtcars$colors = rep(1:4, nrow(mtcars)/4)

ggplot(mtcars, aes(x=wt, y=mpg)) + 
  geom_point() + 
  geom_vline(xintercept=subset(mtcars, colors==1)$wt, color="red") + 
  geom_vline(xintercept=subset(mtcars, colors==2)$wt, color="blue") + 
  geom_vline(xintercept=subset(mtcars, colors==3)$wt, color="yellow") + 
  geom_vline(xintercept=subset(mtcars, colors==4)$wt, color="green")

enter image description here

当变量colors取50个不同的值时,这个解决方案不是很方便1)因为它要求用户写一个非常长的表达式(或者迭代地构造ggplot对象)和2)因为它没有产生颜色的传说。有更好的解决方案吗?

1 个答案:

答案 0 :(得分:3)

也许这样:

+ geom_vline(aes(xintercept = wt,color = factor(colors))) + 
  scale_color_manual(values = c('red','blue','yellow','green'))