虽然我可以使用通用绘图命令关闭轴来更改注释, 注释并使用 axis 命令再次指定它们,例如
cars <- c(1, 3, 6, 4, 9)
plot(cars, type="o", col="blue", ylim=range(0, cars), axes=FALSE, ann=FALSE)
axis(1, at=1:5, lab=c("Mon","Tue","Wed","Thu","Fri"))
我无法使用时间序列对象来做到这一点,例如
www <- "http://www.massey.ac.nz/~pscowper/ts/Maine.dat"
Maine.month <- read.table(www, header = TRUE)
attach(Maine.month)
Maine.month.ts <- ts(unemploy, start = c(1996, 1), freq = 12)
Maine.98 <- window(Maine.month.ts, start = c(1998,1), end = c(1998,11))
如何绘制带有注释的 Maine.98
,如下所示:
"Jan-98" "Feb-98" "Mar-98" "Apr-98" "May-98" etc?
最佳答案
您发现时间序列的 ts
类型适合 ARIMA 建模和具有固定“delta t”的序列,例如每月或每季度序列。
但是 R 总体上擅长处理日期。尝试将数据保存在 data.frame
中,但将 x 轴数据转换为 Date
或 POSIXt
类型。 plot()
将调用一个了解时间的轴格式化函数,并且您可以获得更好的默认值,但您仍然可以覆盖这些默认值。
更好的是使用包 zoo或xts这为您提供了额外的控制以及附加功能:
> X <- data.frame(x=seq(Sys.Date()-11*31,Sys.Date(),by="1 months"),
y=cumsum(rnorm(12)))
> plot(X) # plot as a data.frame with Date column
> library(zoo)
> plot(zoo(X[,-1], X[,1])) # plot as a zoo object
> library(xts)
> plot(xts(X[,-1], X[,1])) # plot as an xts object
编辑:我忘记了,如果您的数据已经是 ts
对象,那么您将拥有更简单的转换器
as.zoo()
和 as.xts()
。 plot.zoo
帮助页面提供了自定义时间轴格式的示例。
关于r - 更改 R 中时间序列图中的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1399217/