我有一个与 R 相关的问题:我试图将 R 中的一组每日时间序列商品数据与包一起绘制ggplot2
到ggfortify
矩阵中。我试图在每个 y 轴上设置标准化值,在 x 轴上设置日期 1/1/2007、1/1/2008 ...。视觉概念应如下所示:
有谁知道这是如何工作的?
我有一个与 R 相关的问题:我试图将 R 中的一组每日时间序列商品数据与包一起绘制ggplot2
到ggfortify
矩阵中。我试图在每个 y 轴上设置标准化值,在 x 轴上设置日期 1/1/2007、1/1/2008 ...。视觉概念应如下所示:
有谁知道这是如何工作的?
该zoo
包为具有灵活时间索引的时间序列提供支持,例如,包括Date
. 该软件包还带来了fortify()
一种可用于ggplot2
图形的方法。autoplot()
还提供了一种方便的方法,请参阅?autoplot.zoo
选择具有不同布局的工作示例。
对于一个有 18 个时间序列和3 x 6 布局中的索引的示例,我使用来自 packageDate
的数据集的一个子集。这提供了相对于瑞士法郎 (CHF) 的不同货币的汇率。FXRatesCHF
fxregime
library("zoo")
data("FXRatesCHF", package = "fxregime")
FX <- window(FXRatesCHF[, c(1:4, 6:19)], start = as.Date("2000-01-01"))
然后ggplot()
可以应用于fortify()
方法的输出:
library("ggplot2")
ggplot(aes(x = Index, y = Value), data = fortify(FX, melt = TRUE)) +
geom_line(color = "darkred") +
xlab("Time") + ylab("FX") +
theme_bw() +
facet_wrap(~ Series, scales = "free_y", ncol = 6)
使用基本图形也可以轻松创建相同类型的布局。只有面板标题在 y 轴上,而不是在灰色阴影的主标题中:
plot(FX, col = "darkred", xlab = "Time", nc = 6,
panel = function(...) { grid(col = "lightgray"); lines(...) })
最后,lattice
可以通过以下方式创建一个版本
library("lattice")
trellis.par.set(theme = standard.theme(color = FALSE))
xyplot(FX, col = "darkred", xlab = "Time", layout = c(6, 3),
panel = function(...) { panel.grid(col = "lightgray"); panel.lines(...) })