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

如何将自定义面板与splom()或xyplot()或pairs()组合,r,panel,lattice,R,Panel,Lattice,我在将异构面板与lattice软件包工具相结合时遇到问题。我尝试了splom()、pairs()和xyplot(),但到目前为止都没有成功。假设我有一个3列的简单时间序列数据,如xts对象: library(xts) S = as.xts(apply(matrix(rnorm(300), ,3), 2, cumsum), Sys.Date()+1:100) 对角线面板(从左上到右下或diag(5)格式)需要显示3个密度图,每个系列一个 上三角面板需要显示三个系列的格子额外::densitypl

我在将异构面板与lattice软件包工具相结合时遇到问题。我尝试了
splom()
pairs()
xyplot()
,但到目前为止都没有成功。假设我有一个3列的简单时间序列数据,如
xts
对象:

library(xts)
S = as.xts(apply(matrix(rnorm(300), ,3), 2, cumsum), Sys.Date()+1:100)
  • 对角线面板(从左上到右下或
    diag(5)
    格式)需要显示3个密度图,每个系列一个
  • 上三角面板需要显示三个系列的
    格子额外::densityplot
    (或等效的
    面板。densityplot
    )。现在顺序无关紧要;我以后再解决
  • 下三角面板需要显示水平方框图。我想
    panel.bwclot
    可以工作,但无法成功地驯服它
  • 这里是一个框架什么可能工作,但我会感谢任何成功的版本

    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
    )
    
    library(lattice);图书馆(latticeExtra)
    splom(作为数据帧),
    panel=function(){
    panel.abline()#临时占位符
    },
    diag.panel=功能(x,…){
    
    yrng我不确定您在这里尝试做什么。
    splom
    绘制散点图矩阵,即两个变量的图,但您尝试绘制密度图和箱线图,这是一个变量的图。