ggplot2:改变geom_segment甘特图中段的颜色?

时间:2014-10-15 04:33:02

标签: r colors ggplot2 gantt-chart

我正在尝试在ggplot2中制作甘特图。我在更改geom_segment()

中每个段的颜色和间距时遇到了麻烦
> head(g672)
mobility    start  endtime
1    active  0.00000  1.60157
3    active  1.60157 59.65837
5    active 59.65840 68.93415
7  immobile 68.93420 69.03430
9    active 69.03430 77.87629
11 immobile 77.87620 80.27855

我正在使用geom_segment()来生成图表:

ggplot(g672, aes(colour=mobility)) + 
  geom_segment(aes(x=start, xend=endtime, y=mobility, yend=mobility), size=15) +
  xlab("Duration") +
  theme_classic()

生成此图表:

enter image description here

我希望能够做两件事:1)改变颜色和2)使2条看起来彼此更接近甚至让它们都重叠(这些是相互排斥的类别,所以如果你是没有做,你正在做另一个。)

欢呼并感谢任何建议

1 个答案:

答案 0 :(得分:6)

我的解决方案是将某些字符用作yyend值(这将使段重叠)。然后,您可以使用theme()axis.text.y=以及axis.title.y=从轴中删除此字符。您可以使用scale_color_manual()更改颜色。

ggplot(g672, aes(colour=mobility)) + 
      geom_segment(aes(x=start, xend=endtime, y="a", yend="a"), size=15) +
      xlab("Duration") +
      theme_classic()+
      scale_color_manual(values=c("black","green"))+
      theme(axis.text.y=element_blank(),
            axis.title.y=element_blank())

enter image description here