如何将自定义变量名称添加到IRF图中?

问题描述 投票:0回答:1

我有以下代码:

var <- VAR(data, p=2, type="const", ic="AIC")
names <- 
 c("log(p_l)","log(val)","log(vol)","log(er)",
 "log(lr)","log(Exp)","log(Imp)","log(rgdp)","log(p_oil)","log(r)")

ir_plot <- plot(irf(var, n.ahead=20, ci=0.95, runs=100, seed=123), varnames = names)

最后一个参数varnames = names是我要完成的目标。我已将参数移开并尝试variable.names无济于事。我只想将图中显示的变量名更改为names中的列表。

编辑:

上面的代码给我的情节之一是

enter image description here

我想将所有变量名更改为更易读的名称。我该怎么办?

r plot naming
1个回答
1
投票

如果要指定要绘制的变量名称,请使用names=

library(vars)
data(Canada)
var.2c <- VAR(Canada, p = 2, type = "const",ic="AIC")
var_irf <- irf(var.2c, n.ahead=20, ci=0.95, runs=100, seed=123)
plot(var_irf,names="e")

enter image description here

假设您希望y轴上的新标签为:

newl = paste0(“ log _”,test $ response)纽尔1“ log_e”“ log_prod”“ log_rw”“ log_U”

然后我们创建一个函数,该函数将更改所需的名称,但保持原始irf不变:

plot_w_names = function(irf,newy){

irf$response = newy
for(i in 1:length(irf$irf)){colnames(irf$irf[[i]]) = newy}
for(i in 1:length(irf$Lower)){colnames(irf$Lower[[i]]) = newy}
for(i in 1:length(irf$Upper)){colnames(irf$Upper[[i]]) = newy}
plot(irf)

}

然后运行此:

plot_w_names(var_irf,newl)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.