首页 > 解决方案 > 在网格中绘制一组模拟时间序列

问题描述

我想在网格排列中绘制以下一组时间序列。

set.seed(289805)
sd1_AR0.8 <- arima.sim(n = 10, model = list(ar = 0.8, order = c(1, 0, 0)), sd = 1)
set.seed(671086)
sd1_AR0.9 <- arima.sim(n = 10, model = list(ar = 0.9, order = c(1, 0, 0)), sd = 1)
set.seed(799837)
sd1_AR0.95 <- arima.sim(n = 10, model = list(ar = 0.95, order = c(1, 0, 0)), sd = 1)
set.seed(289805)
sd3_AR0.8 <- arima.sim(n = 10, model = list(ar = 0.8, order = c(1, 0, 0)), sd = 3)
set.seed(671086)
sd3_AR0.9 <- arima.sim(n = 10, model = list(ar = 0.9, order = c(1, 0, 0)), sd = 3)
set.seed(799837)
sd3_AR0.95 <- arima.sim(n = 10, model = list(ar = 0.95, order = c(1, 0, 0)), sd = 3)
set.seed(289805)
sd5_AR0.8 <- arima.sim(n = 10, model = list(ar = 0.8, order = c(1, 0, 0)), sd = 5)
set.seed(671086)
sd5_AR0.9 <- arima.sim(n = 10, model = list(ar = 0.9, order = c(1, 0, 0)), sd = 5)
set.seed(799837)
sd5_AR0.95 <- arima.sim(n = 10, model = list(ar = 0.95, order = c(1, 0, 0)), sd = 5)
set.seed(289805)
sd10_AR0.8 <- arima.sim(n = 10, model = list(ar = 0.8, order = c(1, 0, 0)), sd = 10)
set.seed(671086)
sd10_AR0.9 <- arima.sim(n = 10, model = list(ar = 0.9, order = c(1, 0, 0)), sd = 10)
set.seed(799837)
sd10_AR0.95 <- arima.sim(n = 10, model = list(ar = 0.95, order = c(1, 0, 0)), sd = 10)

上面的 R 代码模拟AR了具有三个级别($\phi = 0.8、0.9、0.95$)和standard deviation四个级别(sd = 1、3、5、10)的不同 $\phi$ 值的时间序列。

我希望网格是3 by 4这样的,即前三 (3) 组系列在三 (3) 列的一行中运行。

我试图绘制一个系列,如这个

set.seed(289805)
sd1_AR0.8 <- arima.sim(n = 10, model = list(ar = 0.8, order = c(1, 0, 0)), sd = 1)
library(ggplot2)
p <- ggplot(NULL, aes(y = sd1_AR0.8, x = seq_along(sd1_AR0.8)))
p + geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))

我宁愿想要这样的东西这个

标签: rplotgrid

解决方案


拼凑救援。阅读小插曲以调整标题、创建 1 个标题、组合图例等。

library(patchwork)
p1 <- ggplot(NULL, aes(y = sd1_AR0.8, x = seq_along(sd1_AR0.8))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p2 <- ggplot(NULL, aes(y = sd1_AR0.8, x = seq_along(sd1_AR0.9))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p3 <- ggplot(NULL, aes(y = sd1_AR0.8, x = seq_along(sd1_AR0.95))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p4 <- ggplot(NULL, aes(y = sd3_AR0.8, x = seq_along(sd3_AR0.8))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p5 <- ggplot(NULL, aes(y = sd3_AR0.9, x = seq_along(sd3_AR0.9))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p6 <- ggplot(NULL, aes(y = sd3_AR0.95, x = seq_along(sd3_AR0.95))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p7 <- ggplot(NULL, aes(y = sd5_AR0.8, x = seq_along(sd5_AR0.8))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p8 <- ggplot(NULL, aes(y = sd5_AR0.9, x = seq_along(sd5_AR0.9))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p9 <- ggplot(NULL, aes(y = sd5_AR0.95, x = seq_along(sd5_AR0.95))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p10 <- ggplot(NULL, aes(y = sd10_AR0.8, x = seq_along(sd10_AR0.8))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p11 <- ggplot(NULL, aes(y = sd10_AR0.9, x = seq_along(sd10_AR0.9))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))
p12 <- ggplot(NULL, aes(y = sd10_AR0.95, x = seq_along(sd10_AR0.95))) +
  geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('Time') + ylab('Value') + scale_y_continuous(expand = c(0,0))


# plot in a 3 by 4 grid by using plot_layout
p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 + p10 + p11 + p12 + plot_layout(ncol = 3)

在此处输入图像描述


推荐阅读