在 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))
比我更糟的是:
我觉得我一定是遗漏了一些明显的东西,但我只是没有看到它是什么。如果有人有答案,请分享。感谢您花时间阅读我的问题。
如果您没有定义 x
和 y
范围,0 - 1
范围是 hist3D
的默认行为。
如果使用 te 中间的 bin ( 0.1 0.3 0.5 0.7 0.9
) 定义 x
和 y
参数,您将获得预期的结果:
hist3D(x = seq(0.1,0.9,0.2),y=seq(0.1,0.9,0.2),z=xy_table, ticktype = "detailed")
正如我的标题所示,我正在尝试使用 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))
比我更糟的是:
我觉得我一定是遗漏了一些明显的东西,但我只是没有看到它是什么。如果有人有答案,请分享。感谢您花时间阅读我的问题。
x
和 y
范围,0 - 1
范围是 hist3D
的默认行为。
如果使用 te 中间的 bin ( 0.1 0.3 0.5 0.7 0.9
) 定义 x
和 y
参数,您将获得预期的结果:
hist3D(x = seq(0.1,0.9,0.2),y=seq(0.1,0.9,0.2),z=xy_table, ticktype = "detailed")