【问题标题】:Customising the IRF plot自定义 IRF 图
【发布时间】:2018-07-22 20:13:00
【问题描述】:

我正在尝试自定义生成的情节:

plot(irf(VECMcoeff, n.ahead = 20, cumulative = FALSE, ortho = TRUE))

当前图:

目前还不允许发布数据。

有没有办法使用 R 的基础绘图功能来调整这个绘图?更具体地说;

  1. 我想要独立的地块。
  2. 调整 x 轴和 y 轴标题。
  3. 调整主标题。
  4. 删除“95 % Bootstrap CI,100 次运行”。

感谢您的帮助!

数据:

dput(head(combined,25))
structure(c(3.12378036948822, 3.24514490963516, 2.54231015523096, 
3.10758964326189, 3.26905177146087, 3.39086921629928, 3.39867627597089, 
3.063339608249, 2.82158440194456, 3.00060851536641, 2.87498214357332, 
2.73447964251719, 2.51961774067125, 2.43535838893541, 2.53536474393679, 
2.11458263713232, 2.08443293370433, 1.70951997715485, 1.6939353104687, 
1.99402766681289, 2.17851574489578, 2.02035721460859, 2.19849725222166, 
2.12385225312224, 2.13870052300126, 2.53563259854902, 2.71236841778707, 
2.80602806173539, 2.44978220282482, 2.22240349195674, 2.6269002941349, 
2.55424892433652, 2.84227347851153, 3.00695212249206, 2.56409065301929, 
2.11958065079056, 1.93021828518557, 1.91149187923047, 2.12824458610721, 
1.99034383037538, 1.85993728242216, 1.78831122085649, 1.70508421574581, 
1.34148894168009, 1.26428948883955, 1.53707667916106, 1.40125321322403, 
1.56189928398736, 1.59267901471992, 1.29435444758231, 2.88357952825106, 
3.2967949657277, 2.71315870827614, 2.88194083947586, 2.55384396254808, 
2.48162552588286, 2.43461752858767, 2.60895931242784, 2.88699097436266, 
3.06774759389068, 2.92820858177705, 1.9236817467793, 1.30469143981917, 
1.63412478606386, 1.32569634585868, 1.66411340281953, 1.811114177636, 
1.32324449480086, 0.683740288067047, 0.506428412402278, 0.244160570695116, 
-0.0614637978267916, 0.11100051693192, 0.107431188637327, -0.0946163941762501, 
1.56887584570782, 2.2953989716194, 2.3913948824343, 1.60366568545365, 
2.14074303245166, 1.42821783272864, 1.14416900596202, 1.32550310805691, 
1.06775704738626, 1.1754985484452, 1.30819594680082, 1.57801107586324, 
1.57465869540119, 1.52953051921855, 1.59632502092932, 1.51164066108273, 
1.74699133577352, 1.89513403376172, 1.50403737650093, 1.69077755145674, 
1.51619819345532, 1.7908456553931, 1.63120428277988, 1.72264300428443, 
1.91016040082409, 2.93953881174612, 0.573867521584496, 1.36693966408554, 
1.33745582274447, 2.00217541671565, 1.47500074486359, 1.54892810099376, 
1.52596101747453, 1.85097710190023, 1.8027452973638, 1.71255671138078, 
1.78801314649281, 1.73039561596535, 1.7797925346833, 1.68662137367852, 
2.10887254895115, 2.47630376444312, 2.10728662380876, 1.99939507617536, 
2.1661652656972, 1.97780409080129, 2.08116163569287, 2.33934227442197, 
2.38773088163046, 2.39899888596041), .Dim = c(25L, 5L), .Dimnames = list(
    NULL, c("rstar.nl2", "rstar.ger2", "rstar.fr2", "rstar.sp2", 
    "rstar.it2")))

【问题讨论】:

  • 能否发布您的数据,以便我们生成相同的数字?
  • 你能不能把irf()函数的包也贴出来?
  • 'vars' 包。如何在不阻塞整个帖子的情况下发布一些数据?因为数据框是一个 5 x 150 的矩阵。
  • 您的 dput 转储了变量 combined 的样本,但您的代码引用了 VECMcoeff 。它们是一样的吗?
  • combined 包含数据,VECMcoeff 包含基于该数据估计的 VECM 模型;所以有不一样的。

标签: r plot customization


【解决方案1】:

一些一般性的建议:

plot() 是一个通用函数,它实际上调用了一个更具体的函数(称为“方法”),具体取决于您要绘制的内容(参见 Hadley Wickham 的 Advanced R 中的 this 章节预订详情)。在这种情况下,您将“varirf”类的对象输入plot()。你可以通过运行看到这个,例如:

out <- irf(your_arguments_go_here)
class(out)

泛型函数plot() 正在调用方法plot.varirf(),因为您输入的是“varirf”类型的对象。要查看您可以控制plot.varirf() 的哪些参数,请查看该函数的帮助页面

?plot.varirf

如果这不能让您充分控制您希望情节的外观,那么您应该放弃尝试使用 plot.varif() 并手动构建您想要的情节,如下所示:

plot(x=my_x_vals, y=my_y_vals, main="My Title", pch=20, col="red", etc.)

在手动创建绘图时,您可能会发现了解如何创建 plot.varirf 绘图很有用,这样您就可以实现一些相同的格式。要查看plot.varirf 的源代码,请使用:

getAnywhere(plot.varirf)

【讨论】:

  • 这不仅对这个问题很有帮助,而且我刚刚学到了一些对其他场景非常有价值的东西!谢谢!从我在帮助文件中可以看到,很多元素默认设置为 NULL,因此希望通过更改这些值,我可以根据需要调整绘图。
【解决方案2】:

这是一个例子:

plot(x, plot.type = "single", names = NULL, main = "IRF to a one-standard deviation shock to APP", sub = NULL, lty = NULL, lwd = NULL, col = NULL, ylim = NULL, ylab = "Eonia", xlab = "Number of periods", mar.multi = c(0, 4, 0, 4), oma.multi = c(6, 4, 6, 4), adj.mtext = NA, padj.mtext = NA, col.mtext = NA)

其中,x 是你的 varest 对象,

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多