在plot.zoo(多个)和par(new = T)之后弄乱了面板

时间:2018-10-02 12:28:59

标签: r zoo par

我用plot.zoo创建了一个六面板的情节 并用par(new = T)清除了我的图形设置。我预计下一个六面板绘图将在另一个“上方”。但是,第一个面板丢失了(仍然在旧图上),只有2-6出现了(但是位置错误)。 除了par(new = T)之外,我还需要重设什么?

> require(PerformanceAnalytics) 
> data('managers') 
> managers <- managers[,c('HAM1','HAM3','HAM4','SP500 TR','US 10Y TR','US 3m TR')]
> plot.zoo(managers) 
> par(new = T) 
> plot.zoo(managers*1.1, col='red')

1 个答案:

答案 0 :(得分:1)

for在多面板图中不支持该功能。通常,它希望您一次调用即可完成所有操作,可能需要指定一个plot.zoo函数。

这是两种方法。请注意,第一种方法是panel=被回收。

screens

还请注意,如果您想多次通过,可以使用library(PerformanceAnalytics) library(zoo) data("managers") cn <- c('HAM1','HAM3','HAM4','SP500 TR','US 10Y TR','US 3m TR') managers_z <- as.zoo(managers) # 1. without a panel function plot(cbind(managers_z[, cn], 1.1*managers_z[, cn]), screens = seq_along(cn), col = rep(c("black", "red"), each = length(cn))) # 2. with a panel function pnl <- function(x, y, ...) { lines(y ~ x, ...) dots <- list(...) dots$col <- "red" do.call(lines, c(1.1 * y ~ x, dots)) } plot(managers_z[, cn], panel = pnl) 来做到这一点:

xyplot.zoo