如何在 R 中制作 3D 直方图

How to make 3D histogram in R

这是我的目标:根据 xz 轴上绘制 y 的频率。

这些是我的问题:我有一个两列数组(xy),需要将 x 分成 classes(p.ex. 0.2 或 0.5) 并为 x 的每个 class 计算 y 的频率。该图应显示为 "ground" 计划中的 x-y 图和 z 轴中的频率。它可以像一个表面或 3D 直方图。我尝试使用 plot3D 包的 hist3D 函数来实现它,但我不知道我做错了什么。

这是我正在尝试做的一个例子:

https://www.safaribooksonline.com/library/view/r-data-visualization/9781783989508/ch06s05.html

谢谢!!

使用一些模拟数据,这应该可以满足您的需求。关键是您必须创建双变量容器,使用 cut() 函数完成。然后将分箱的因素视为水平,然后我们可以使用 table() 函数计算每个因素水平的组合,如下所示:

library(plot3D)

##  Simulate data:
set.seed(2002)
x <- rnorm(1000)
y <- rnorm(1000)

##  Create cuts:
x_c <- cut(x, 20)
y_c <- cut(y, 20)

##  Calculate joint counts at cut levels:
z <- table(x_c, y_c)

##  Plot as a 3D histogram:
hist3D(z=z, border="black")

##  Plot as a 2D heatmap:
image2D(z=z, border="black")