【问题标题】:When creating a 3d histogram in R, using Hist3D from the Plot3D library, the bins don't line up with axis ticks在 R 中创建 3d 直方图时,使用 Plot3D 库中的 Hist3D,箱不与轴刻度对齐
【发布时间】:2021-05-30 13:51:02
【问题描述】:

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

比我得到的更糟糕的是:

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

【问题讨论】:

    标签: r histogram plot3d


    【解决方案1】:

    如果您没有定义xy 范围,0 - 1 范围是hist3D 的默认行为。

    如果您使用箱的中间 ( 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")
    

    【讨论】:

      猜你喜欢
      • 2020-01-03
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2021-12-01
      • 2011-12-02
      • 1970-01-01
      • 2012-01-21
      • 2021-05-05
      相关资源
      最近更新 更多