r - 更改 R 中时间序列图中的注释

标签 r annotations plot time-series

虽然我可以使用通用绘图命令关闭轴来更改注释, 注释并使用 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 轴数据转换为 DatePOSIXt 类型。 plot() 将调用一个了解时间的轴格式化函数,并且您可以获得更好的默认值,但您仍然可以覆盖这些默认值。

更好的是使用包 zooxts这为您提供了额外的控制以及附加功能:

 > 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/

相关文章:

r - 如何在 ggplot2 中为绘图创建双水平轴?

java - 如何在 Xtend 的 Active Annotations 中获得完整的返回类型转发?

r - 在 R 中绘制具有反向 x 轴的折线图

R:子集化和绘制 SpatialPoints 对象

.net - 寻找比 GDI 更快的渲染动态数据图的解决方案

R Shiny 错误 : object input not found

r - 从 R 中的 map_*() 构建线性回归模型

r - 按列名合并 R

java - @Qualifier 在 spring 5.0.6 中不起作用

Java:如何简化复杂的注解