使用ggplot2的时间序列图

时间:2011-10-02 10:02:23

标签: r ggplot2

我有一个实验,随着时间的推移研究了三种不断变化的酵母种群。在离散的时间点,我们测量了它们的增长,这是响应变量。我基本上想要将酵母的生长绘制为时间序列,使用箱线图来总结在每个点进行的测量,并分别绘制三个群体中的每一个。基本上,看起来像这样的东西(作为一个新手,我不会发布实际图像,所以x,y,z指的是三个重复):

|              xyz
|       x z    xyz
|  y    xyz
| xyz    y
| x z     
|
-----------------------
  t0     t1    t2

如何使用ggplot2完成此操作?我觉得必须有一个简单而优雅的解决方案,但我找不到它。

1 个答案:

答案 0 :(得分:5)

试试这段代码:

require(ggplot2)

df <- data.frame(
  time = rep(seq(Sys.Date(), len = 3, by = "1 day"), 10),
  y = rep(1:3, 10, each = 3) + rnorm(30),
  group = rep(c("x", "y", "z"), 10, each = 3)
)
df$time <- factor(format(df$time, format = "%Y-%m-%d"))

p <- ggplot(df, aes(x = time, y = y, fill = group)) + geom_boxplot()
print(p)

Fig1

只有x = factor(time)ggplot(df, aes(x = factor(time), y = y, fill = group)) + geom_boxplot() + scale_x_date()无效。

此形式的图形需要预处理factor(format(df$time, format = "%Y-%m-%d"))