0

我有以下示例数据:

my.list <- vector('list',1000)
for(i in 1:1000)
{
    temp <- sample(c("type1","type2"),1)
    my.list[[i]] <- data.frame(time=i,type=temp)
}
df <- do.call('rbind',my.list)

我想绘制类型变量随时间的变化。我使用了以下内容:

ggplot(df,aes(x=time,y=type)) + geom_line()

使用此命令,我没有得到预期的结果:

在此处输入图像描述

请注意从类型 1 到类型 2 的转换(反之亦然)没有显示在图中。我错过了什么 ?

另外,在该图中,似乎在时间 x 处,类型变量同时采用type1type2作为与数据框内容相矛盾的值

4

1 回答 1

2

对于这两项工作,您必须使用group参数。

ggplot(df,aes(x=time,y=type, group=1)) + geom_line()

但是请注意,由于在使用 1000 个观测值时线条非常密集,因此结果将难以解释。如果你只使用 100 个观测值,那么

set.seed(1)
my.list <- vector('list',100)
for(i in 1:100)
{
  temp <- sample(c("type1","type2"),1)
  my.list[[i]] <- data.frame(time=i,type=temp)
}
df <- do.call('rbind',my.list)

结果如下所示:

在此处输入图像描述

于 2016-07-16T15:02:15.133 回答