【发布时间】:2012-10-28 04:57:18
【问题描述】:
我希望绘制两个时间序列,并根据当时哪个序列更大来阴影序列之间的空间。
这里有两个系列——第一个是在一个数据框中,带有一个指标,表示当时较大的系列
d1 <- read.csv("https://dl.dropbox.com/s/0txm3f70msd3nm6/ribbon%20data.csv?dl=1")
这是融化的系列。
d2 <- read.csv("https://dl.dropbox.com/s/6ohwmtkhpsutpig/melted%20ribbon%20data.csv?dl=1")
我绘制的...
ggplot() + geom_line(data = d2,
aes(x = time, y = value, group = variable, color = variable)) +
geom_hline(yintercept = 0, linetype = 2) +
geom_ribbon(data = d1[d1$big == "B",],
aes(x = time, ymin = csa,
ymax = csb),
alpha = .25,
fill = "#9999CC") +
geom_ribbon(data = d1[d1$big == "A",],
aes(x = time, ymin = csb,
ymax = csa),
alpha = .25,
fill = "#CC6666") +
scale_color_manual(values = c("#CC6666" , "#9999CC"))
导致...
为什么情节中间有一条多余的蓝带?
【问题讨论】:
-
这是因为你的数据有缺口。要告诉
ggplot这个差距,并且不绘制任何内容,您必须通过在每个“部分”的末尾添加一行 NA 数据来终止功能区。 -
我实际上不确定是不是这样,因为这只是两个模拟的随机游走系列。为什么它们的丝带之间没有红带?
-
我赞同@Andrie 的评论。剧情是对的。功能区连接数据点。如果要消除间隙,则必须创建单独的色带。
-
没有红色带,因为在
d1$big == "A"数据的“边缘”,csa和csb之间的差异始终为零。这不适用于d1$big == "B"。 -
感谢@Andrie 和 Sven——起初你的优雅批评暗示了我。