在 R 中创建 3d 直方图时,使用 Plot3D 库中的 Hist3D,容器不与轴刻度对齐

When creating a 3d histogram in R, using Hist3D from the Plot3D library, the bins don't line up with axis ticks

正如我的标题所示,我正在尝试使用 Plot3D 包创建 3D 直方图。以下是我遇到的问题的最小工作(或更确切地说不工作)示例:

library(plot3D)

x = runif(10000)/2
y=runif(10000)

cuts = c(0, 0.2, 0.4, 0.6, 0.8, 1)

x_cut = cut(x, cuts)
y_cut = cut(y, cuts)

xy_table = table(x_cut, y_cut)

hist3D(z=xy_table, ticktype = "detailed")

这将生成以下图像:

正如您在图像中观察到的,直方图的 bin 延伸到 [0,1]x[0,1] 之外。无论如何我可以强制垃圾箱与轴上的刻度线完全对齐吗?也就是说,我希望图表能够正确表示所有数据点的 x 和 y 值都在 0 和 1 之间。现在查看图表,可能会让人相信包含原点的 bin,例如,也可能包含数据点 (-0.1, 0)。这不会发生在我试图显示的数据中,我需要轴来传达这一点。

我整天都在摆弄各种轴参数等等,但无法让它工作。例如,如果我尝试使用命令

来绘制事物
hist3D(z=xy_table, ticktype = "detailed", xlim=c(0,1), ylim=c(0,1))

比我更糟的是:

我觉得我一定是遗漏了一些明显的东西,但我只是没有看到它是什么。如果有人有答案,请分享。感谢您花时间阅读我的问题。

如果您没有定义 xy 范围,

0 - 1 范围是 hist3D 的默认行为。

如果使用 te 中间的 bin ( 0.1 0.3 0.5 0.7 0.9) 定义 xy 参数,您将获得预期的结果:

hist3D(x = seq(0.1,0.9,0.2),y=seq(0.1,0.9,0.2),z=xy_table, ticktype = "detailed")