首页 文章

使用莱迪思时遇到问题并将事件绘制为时间序列线图

提问于
浏览
0

我有数据表,我试图在R中使用晶格来绘制图形 . 该表包含按日期每个单位发生的特定事件的计数(我按相应月份的第一天分组),按日期排序 .

> data
      Unit       Date Count
1   Unit14 2005-01-01     1
2   Unit19 2005-01-01     0
3   Unit13 2006-01-01     8
4   Unit17 2006-01-01     0
5   Unit13 2007-01-01     0
6   Unit14 2007-01-01     4
7   Unit19 2007-01-01     1
8    Unit5 2007-01-01     0
9    Unit9 2007-01-01     1
10  Unit13 2008-01-01     0
...

我在格子中使用xyplot进行绘图,如果我只绘制它们发生的点,它就可以正常工作 . 我通过单位绘制每个事件的图像网格,其中x轴为日期,y轴为Dount .

> xyplot(Count~Date | Unit, data)

但是,当我尝试将其绘制为折线图时,它并不理解事件的顺序是在事件发生的时间,并且该线再次自身 . 换句话说,线条从图形的中间开始,并在点之间形成“星形”图案 .

> xyplot(Count~Date | Unit, data, col="blue",type="l")

如何将其绘制为时间序列?

我仍然很擅长用R绘图,所以任何帮助都将非常感激 . 谢谢 .

1 回答

  • 1

    按照它们出现的顺序绘制和连接点,而不是按时间顺序 . 如果在绘图之前对data.frame进行排序,那些人工制品将会消失 .

    # Sample data
    n <- 20
    k <- 3
    d <- data.frame(
      Unit = rep(LETTERS[1:k], each=n),
      Date = rep(sample(seq.Date(Sys.Date(), length=n, by=1)), k),
      Count = rpois(k*n,10)
    )
    # Unorderd data    
    xyplot(Count ~ Date | Unit, data=d, type="l")
    # Ordered data
    xyplot(Count ~ Date | Unit, data=d[order(d$Date),], type="l")
    

    请注意, ggplot2 不会发生这种情况(除非您明确要求"star-shape" artefact):

    library(ggplot2)
    ggplot(d, aes(Date, Count)) + geom_line() + facet_grid(~Unit)
    

相关问题