如何在格子布局中制作热图样式的双变量直方图?

saf*_*fsd 6 r lattice

以下示例数据为例:

x <- rnorm(10000)
y <- rnorm(10000) * x
z <- rnorm(10000) * y
df <- data.frame(x,y,z)
Run Code Online (Sandbox Code Playgroud)

我们可以生成散点图矩阵,如下所示:

splom(df)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但由于大量的重叠点,很难测量密度.

是否有一种直接的方法用双变量直方图热图替换每个图,就像壁球产生的那样?

library(squash)
hist2(df$x, df$y)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ags*_*udy 8

panel.hexbinplot对于大型数据集很方便.

library(hexbin)
splom(df, panel=panel.hexbinplot)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您可以像这样自定义面板功能:

library(hexbin)
splom(df,
      panel = function(x, y, ...){
        panel.hexbinplot(x, y, style = "nested.lattice", 
                      type = c("g", "smooth"),col='blue', ...)
      },
      pscale=0, varname.cex=0.7)
Run Code Online (Sandbox Code Playgroud)

你可以玩teh style参数.

在此输入图像描述