创建彩色线条

Create coloured lines

对于几个主题,我试图绘制一条彩色时间线,其中每种颜色代表一个状态。我创建了一些随机数据来向您展示我的意思。

require(dplyr)
require(ggplot2)
df=data_frame(subject=factor(rep(1:4,each=100)),
              time=rep(1:100,4),
              state=sample(letters[1:4],400,replace=TRUE)) %>%
   group_by(subject) %>% 
   mutate(time=time+round(runif(1,min=0,max=20)))

ggplot(df,aes(x=subject,y=time,color=state,group=1)) +
   geom_line(size=10)+coord_flip()

问题是从一个主题到另一个主题的线条。我尝试在每行的末尾添加非数字值或 NULL,但这没有用。有谁知道去除对角线的方法? (欢迎使用其他方式制作相同类型的情节。)

group 美学对此负责。添加 group = subject 将有助于:

ggplot(df,aes(x=subject,y=time,color=state,group=subject)) +
    geom_line(size=10)+coord_flip()