1

正如我的标题所示,我正在尝试使用 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))

比我得到的东西更糟: 在此处输入图像描述

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

4

1 回答 1

0

0 - 1range 是hist3D如果您不定义xy范围的默认行为。

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

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

在此处输入图像描述

于 2021-03-01T04:28:44.087 回答