着色ACF ggplot对象

时间:2016-07-22 15:16:04

标签: r ggplot2

我想用我选择的配色方案制作ACF。

预测包允许我创建ACF的ggplot2图。我可以改变结果图的每个方面,除了ACF的线和置信区间。

以下是示例代码和结果图:

acf <- forecast::ggAcf(rnorm(100))

acf + ggtitle("Autocorrelation Function (ACF)") + xlab("Lag") + ylab("ACF") +
  theme(
    panel.background = element_rect(fill="#5C5D67"),
    axis.title = element_text(colour="#FFFAFF", size = 12),
    axis.title.x = element_text(colour="#FFFAFF", size = 12),    
    axis.text = element_text(colour="#FFFAFF", size = 12),
    axis.text.y = element_text(colour="#FFFAFF", size = 12),
    panel.grid.minor = element_blank(),
    panel.grid.major = element_line(color="#1E1E1E"),
    plot.title = element_text(colour="white"),
    plot.background = element_rect(fill = "#1e1e1e")
  )

enter image description here

如何从默认黑色以外的其他东西更改ACF线的颜色?如何将置信区间更改为默认蓝色以外的其他内容?

1 个答案:

答案 0 :(得分:4)

ggAcf功能基于autoplot.acf。您可以通过forecast:::autoplot.acf查看该功能。当你这样做时,你会发现段和水平线的颜色在函数中是硬编码的,没有选项来控制它们。

要在不创建自己的新功能的情况下更改颜色,可以使用ggplot2中的函数在原始绘图的顶部添加新图层。但是,您需要使用与autoplot.acf中相同的公式“手动”计算置信区间。

library(forecast)
library(ggplot2)

# Calculate confidence interval limits
ci2 = qnorm((1 + .95)/2)/sqrt(length(rnorm(100)))

# Change line color to green, CI color to purple
ggAcf(rnorm(100)) +
    geom_segment(lineend = "butt", color = "green") +
    geom_hline(yintercept = 0, color = "green") +
    geom_hline(yintercept = c(ci2, -ci2), color = "purple", linetype = "dashed")

enter image description here

请注意,对于“在前一个图层上添加图层”来解决问题,您需要保持线条类型与原始图形中的相同。