如何将自定义面板与splom()(或xyplot()或pairs()组合)

时间:2015-08-06 05:45:51

标签: r panel lattice

我在将异构面板与网格包工具结合使用时遇到了麻烦。我尝试了splom()pairs()xyplot(),但到目前为止都没有成功。假设我有3列的简单时间序列数据作为xts对象:

library(xts)
S = as.xts(apply(matrix(rnorm(300), ,3), 2, cumsum), Sys.Date()+1:100)
  1. 对角线面板(从左上角到右下角或diag(5)格式)需要显示3个密度图,每个系列一个。
  2. 上方三角形面板需要为这三个系列显示latticeExtra::densityplot(或等效panel.densityplot)。这个命令现在无关紧要;我稍后会解决。
  3. 下三角板需要显示水平箱形图。我认为panel.bwplot可行,但无法成功驯服它。
  4. 这是一个可行的框架,但我会感谢任何成功的版本。

    library(lattice); library(latticeExtra)
    
    splom(as.data.frame(S),
          upper.panel=function(){
            panel.abline() # temporary placeholder
          },
          diag.panel = function(x, ...){
            yrng <- current.panel.limits()$ylim
            d <- density(x, na.rm=TRUE)
            d$y <- with(d, yrng[1] + 0.95 * diff(yrng) * y / max(y) )
            panel.lines(d)
            diag.panel.splom(x, ...)
          },
          lower.panel = function(x, y, ...){
            panel.abline()  # temporary placeholder
          },
          pscale=0, as.matrix = TRUE
    )
    

0 个答案:

没有答案