在R中的线图中添加功能区

时间:2011-11-05 18:08:06

标签: r ggplot2

我想知道是否有人可以帮助我。我有10个时间序列,每个100分。 我想将平均时间序列绘制为线图,并在该行中添加一个阴影带,表示10个时间序列中的标准差。

时间序列定义为:

q[110,10]  

我把平均值系列计算为:

q.mean = apply(q,c(1),mean)  

标准偏差限制为:

q.pos = q.mean + apply(q,2,sd)  
q.neg = q.mean - apply(q,2,sd) 

现在我想将q.m绘制成一条线,如果可能的话,使用q.pos和q.neg作为限制添加一个色带

我想知道我是否可以使用ggplot来做到这一点。有没有人知道如何完成这项工作。我很感激任何意见。谢谢!

1 个答案:

答案 0 :(得分:10)

您可以查看以下链接:http://docs.ggplot2.org/current/geom_ribbon.html

然而,这个简单的代码应该让你走上正轨。

library(ggplot2)
q <- data.frame(
  x   = seq(1, 100, 1),
  ts1 = sample(1:100),
  ts2 = sample(1:100))

q$mean <- apply(q, 1, function(row) mean(row[-1]))
q$sd   <- apply(q, 1, function(row) sd(row[-1]))

eb <- aes(ymax = mean + sd, ymin = mean - sd)
ggplot(data = q, aes(x = x, y = mean)) + 
  geom_line(size = 2) + 
  geom_ribbon(eb, alpha = 0.5)

请注意,您计算列的标准差(MARGIN = 2,在应用调用中),而不是行。