r-在Lattice和将事件绘制为时间序列折线图方面遇到问题



我有一个数据表,我正试图使用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来绘制,如果我只是绘制它们发生的点,它会很好地工作。我通过Unit绘制每个事件的图像网格,x轴为Date,y轴为Dount。

> xyplot(Count~Date | Unit, data)

但是,当我试图把它画成一个折线图时,它不明白事件的顺序是按事件的时间排列的,而且这条线会自行加倍。换句话说,线从图的中间开始,在点之间形成"星形"图案。

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

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

我对R绘图还很陌生,所以任何帮助都将不胜感激。非常感谢。

点按出现的顺序绘制和连接,不是按时间顺序。如果你对数据进行排序,这些人工制品就会消失。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不会发生这种情况(除非你明确要求"星形"伪影):

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

最新更新