Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何更改plot.zoo plot中的x轴刻度(数量)?(axis()失败)_R_Xts_Zoo - Fatal编程技术网

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)