Вам необходимо создать функцию панели, которая будет работать внутри каждой панели, которую ts.plot создает для обработки нескольких серий. Необходимо продублировать, как функция lines () обрабатывает аргументы, а также принять аргумент для abline, который затем будет «работать» в локальной системе координат:
?ts.plot
my.ts.panel <- function(x, col = col, bg = bg, pch = pch, type = type, vpos=8.75, ...){
lines(x, col = col, bg = bg, pch = pch, type = type, ...)
abline(v=vpos)}
plot.ts(cbind(a, b, c, d, e, f, g, h),main="Time Series", panel=my.ts.panel)
Это похоже на расширение решеточных функций, за исключением того, что все это делается в базовой графике.
Может быть, лучше оставить настройку vpos в списке аргументов. Тогда у вас будет ручка с внешней стороны, и вам не нужно будет переписывать функцию. (Ваш выбор. Я получал предупреждения от «графической полиции», когда пытался передать его в список аргументов ts.plot.):
vpos=8.75
my.ts.panel <- function(x, col = col, bg = bg, pch = pch, type = type, ...){
lines(x, col = col, bg = bg, pch = pch, type = type, ...)
abline(v=vpos)}
plot.ts(cbind(a, b, c, d, e, f, g, h),main="Time Series", panel=my.ts.panel)