gpt4 book ai didi

r - geom_ribbon 中可能存在的错误

转载 作者:行者123 更新时间:2023-12-04 17:37:43 24 4
gpt4 key购买 nike

我希望绘制两个时间序列,并根据当时哪个系列较大来对系列之间的空间进行着色。
这是两个系列——首先在一个数据框中,其中包含当时较大的系列的指示符

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"))
这导致...
the resulting plot
为什么情节中间有一个多余的蓝色带?

最佳答案

这是一个解决方案。我换了 data = d1[d1$big == "B",]在第一 geom_ribbon功能:

data = rbind(d1[d1$big == "B",],
d1[c((which(diff(as.numeric(d1$big)) == -1) + 1),
(which(diff(as.numeric(d1$big)) == 1))), ])

这是必要的,因为 d1$big == "B" 的第一行和最后一行序列通常包含不同的 csacsb值。因此,有一条连接数据的可见功能区。上面的命令使用这些序列之前的最后几行和之后的第一行以及第一个色带的数据。 d1$big == "A"不存在此问题(第二条色带的底座)。

完整代码:
ggplot() +
geom_line(data = d2,
aes(x = time, y = value, group = variable, color = variable)) +
geom_hline(yintercept = 0, linetype = 2) +
geom_ribbon(data = rbind(d1[d1$big == "B",],
d1[c((which(diff(as.numeric(d1$big)) == -1) + 1),
(which(diff(as.numeric(d1$big)) == 1))), ]),
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"))

enter image description here

关于r - geom_ribbon 中可能存在的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13106478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com