如何在R

时间:2015-05-31 22:23:05

标签: r plot 3d histogram

这是我的目标:根据y轴中的x绘制z的频率。

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

这是我想要做的一个例子:

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

谢谢!

1 个答案:

答案 0 :(得分:24)

使用一些模拟数据,这可以得到你想要的。关键是你必须使用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")

3D 2D