0
我想在R中使用ggplot绘制2个ACFs。我使用geom_segment(),它工作正常,但有一点烦人的细节是,根据我声明geom_segment的顺序,如果我在最大值之前声明它们,图形会覆盖最小的ACF。如果一个ACF总是有一个更大的值,那么这就不成问题了(以前我会用geom_segment的情况)。我知道这听起来有点混乱,所以这里是一个工作示例:绘制2个ACFs ggplot2 - 显示最小值颜色
library(ggplot2)
library(grid)
library(plyr)
set.seed(123)
data1 <- arima.sim(n = 10000, model = list(ar = 0.4,ma=0.4))
data2 <- arima.sim(n = 10000, model = list(ma = c(0.9,0.3)))
acf1 <- acf(data1, plot = FALSE,lag.max=15)
acf1DF <- with(acf1, data.frame(lag, acf))
acf1DF$lag <- as.integer(acf1DF$lag)
acf2 <- acf(data2, plot = FALSE,lag.max=15)
acf2DF <- with(acf2, data.frame(lag, acf))
acf2DF$lag <- as.integer(acf2DF$lag)
q <- ggplot(data = acf1DF, mapping = aes(x = lag, y = acf)) +
geom_hline(aes(yintercept = 0)) +
geom_segment(mapping = aes(xend = lag, yend = 0,color="red")) +
geom_segment(data=acf2DF,mapping = aes(x=lag,y=acf,xend = lag, yend = 0),
inherit.aes=FALSE,show.legend=FALSE)
q
注意,我看不到的最小值为先滞后。
谢谢。
非常感谢;我开始获得ggplot数据安排的要点。 – user191919
不客气!我知道一次查看您的数据int格式是非常有用的。并且知道如何将数据转换成形状ggplot想要它(长时间,一行上的数据点的所有信息)将使您的ggplot生活更容易。 – Heroka