使用 ggplot2 从 Zoo 时间序列绘制多边形
Drawing polygons from a Zoo time series using ggplot2
我有一个带有置信带的降雨预测的动物园时间序列,我想使用 ggplot2
绘制它们
my.zoo.ts = zoo(matrix(c(0.000000, 5.569306, 7.302467, 0.000000, 0.000000, 5.964339, 8.000200,
0.000000, 0.000000, 5.174273, 6.604734, 0.000000, 0.000000, 5.705250,
7.542581, 0.000000, 0.000000, 5.433362, 7.062354, 0.000000),nrow=4),
c("2012-07-05 19:00:00 BST", "2012-07-05 19:30:00 BST",
"2012-07-05 20:00:00 BST", "2012-07-05 20:30:00 BST"))
colnames(my.zoo.ts) = c("pred","CI95up","CI95low","CI50up","CI50low")
我使用基本的 plot
函数和 polygon
制作了下面的图
但我完全切换到 ggplot2
并想制作类似的东西。我尝试了以下
autoplot(my.zoo.ts, facet = NULL)
这给出了
但我不知道如何从这里开始,因为我是 ggplot2
的新手。任何帮助表示赞赏。谢谢
首先,我将其设为标准数据框,使用 dplyr
:
library(dplyr)
z <- my.zoo.ts %>% as.data.frame %>%
add_rownames("date")
现在我们可以绘图了,使用 geom_ribbon
:
ggplot(z, aes(x=date, y=pred, group = 1)) +
geom_line() +
geom_ribbon(aes(ymax = CI50up, ymin = CI50low), fill = 1, alpha = 0.2) +
geom_ribbon(aes(ymax = CI95up, ymin = CI95low), fill = 2, alpha = 0.2)
您可以使用填充来改变颜色,使用 alpha 来改变透明度。
我有一个带有置信带的降雨预测的动物园时间序列,我想使用 ggplot2
my.zoo.ts = zoo(matrix(c(0.000000, 5.569306, 7.302467, 0.000000, 0.000000, 5.964339, 8.000200,
0.000000, 0.000000, 5.174273, 6.604734, 0.000000, 0.000000, 5.705250,
7.542581, 0.000000, 0.000000, 5.433362, 7.062354, 0.000000),nrow=4),
c("2012-07-05 19:00:00 BST", "2012-07-05 19:30:00 BST",
"2012-07-05 20:00:00 BST", "2012-07-05 20:30:00 BST"))
colnames(my.zoo.ts) = c("pred","CI95up","CI95low","CI50up","CI50low")
我使用基本的 plot
函数和 polygon
制作了下面的图
但我完全切换到 ggplot2
并想制作类似的东西。我尝试了以下
autoplot(my.zoo.ts, facet = NULL)
这给出了
但我不知道如何从这里开始,因为我是 ggplot2
的新手。任何帮助表示赞赏。谢谢
首先,我将其设为标准数据框,使用 dplyr
:
library(dplyr)
z <- my.zoo.ts %>% as.data.frame %>%
add_rownames("date")
现在我们可以绘图了,使用 geom_ribbon
:
ggplot(z, aes(x=date, y=pred, group = 1)) +
geom_line() +
geom_ribbon(aes(ymax = CI50up, ymin = CI50low), fill = 1, alpha = 0.2) +
geom_ribbon(aes(ymax = CI95up, ymin = CI95low), fill = 2, alpha = 0.2)
您可以使用填充来改变颜色,使用 alpha 来改变透明度。