Вы хотите удалить правую ось. В plot.xts(..., yaxis.right = TRUE, ...)
есть аргумент. Так
library('xts')
#> Loading required package: zoo
#>
#> Attaching package: 'zoo'
#> The following objects are masked from 'package:base':
#>
#> as.Date, as.Date.numeric
data(sample_matrix)
sample.xts <- as.xts(sample_matrix, descr='my new xts object')
plot(sample.xts, yaxis.right = FALSE)
делает то, что вы хотите.
Я попытался ответить на второй вопрос, убрав ярлык в правой верхней части. Изучение исходного кода для plot.xts()
показывает, что метка жестко закодирована в основной заголовок. Даже установка main = ''
не удалит его. Вы можете обойти это, отредактировав plot.xts()
и скопировав его в новую функцию.
plotxts <- fix("plot.xts")
# In the editor that opens, replace the lines below:
### text.exp <- c(expression(text(xlim[1], 0.5, main, font = 2,
### col = theme$labels, offset = 0, cex = 1.1, pos = 4)),
### expression(text(xlim[2], 0.5, paste(start(xdata[xsubset]),
### end(xdata[xsubset]), sep = " / "), col = theme$labels,
### adj = c(0, 0), pos = 2)))
### cs$add(text.exp, env = cs$Env, expr = TRUE)
# with these lines:
### text.exp <- expression(text(xlim[1], 0.5, main, font = 2,
### col = theme$labels, offset = 0, cex = 1.1, pos = 4))
# Finally, you need to ensure your copy's environment is the xts namespace:
environment(plotxts) <- asNamespace("xts")
plotxts(sample.xts, yaxis.right = FALSE, main = "Main Title")
Второй и, возможно,
Более простой вариант - использовать другую функцию графика и изменить ее, чтобы получить линии сетки и т. д., которые вы хотите. я начну
с plot.zoo()
, потому что он уже хорошо обрабатывает временные ряды.
zoo::plot.zoo(sample.xts, screens = 1, xlab="", las=2, main="Main Title")
grid() # add the grid
Это, по крайней мере, дает сетку там. Я не могу проверить, будет ли он обрабатывать метки оси X без данных на правильной частоте.