R 如何更改plot.zoo plot中的x轴刻度(数量)?(axis()失败)
以下带有R 如何更改plot.zoo plot中的x轴刻度(数量)?(axis()失败),r,xts,zoo,R,Xts,Zoo,以下带有plot.zoo()的时间序列图显示了奇怪数量的(只有一个)x轴刻度。如何说服plot.zoo()显示更多的x轴刻度 ## Create a dummy time series library(xts) start <- as.Date("2020-04-01") end <- as.Date("2021-06-02") dat <- seq(start, end, length.out = 226) set.seed(271)
plot.zoo()
的时间序列图显示了奇怪数量的(只有一个)x轴刻度。如何说服plot.zoo()显示更多的x轴刻度
## Create a dummy time series
library(xts)
start <- as.Date("2020-04-01")
end <- as.Date("2021-06-02")
dat <- seq(start, end, length.out = 226)
set.seed(271)
ts <- xts((1:226) + rnorm(226, sd = 1/3), order.by = dat)
plot.zoo(ts) # => only one x-axis tick displayed
如果您需要更多详细信息,请告诉我。这是一个基于标准
plot()的版本。
:
绘图(如.numeric(ts),type=“l”,xaxt=“n”)
ticks问题中的代码有几个问题:
- 问题中的代码调用
plot.zoo
,后者直接调用zoo方法。通常,代码应该调用泛型并让它分派方法,而不是直接调用方法。(必须直接调用方法的主要情况是泛型出现在当前未加载的不同包中;但是,plot
的情况并非如此,因为它是base R的一部分。)
?axTicksByTime
表示此函数是为内部使用而编写的
- 如果您想以任何方式使用axTicksByTime
,请注意它将索引返回到时间向量中,而不是时间本身。这就是为什么当问题使用axis
命令时,什么也没有出现
如果您想以任何方式使用axTicksByTime
,并将其与plot
的zoo方法一起使用,则可以这样做
plot(as.zoo(ts), xaxt = "n")
ticks <- axTicksByTime(ts, format = "%Y %m")
labels <- names(ticks)
axis(1, at = time(ts)[ticks], labels = labels)
绘图(如.zoo(ts),xaxt=“n”)
滴答声
plot(as.numeric(ts), type = "l", xaxt = "n")
ticks <- axTicksByTime(index(ts), format.labels = "%Y-%m-%d")
labels <- names(ticks)
axis(1, at = ticks, labels = labels)
plot(as.numeric(ts), type = "l", xaxt = "n", xlab = "", ylab = "ts")
ticks <- axTicksByTime(index(ts), format.labels = "%Y-%m")
labels <- names(ticks)
axis(1, at = ticks, labels = labels, las = 2)
plot(as.zoo(ts), xaxt = "n")
ticks <- axTicksByTime(ts, format = "%Y %m")
labels <- names(ticks)
axis(1, at = time(ts)[ticks], labels = labels)