这是我的目标:根据y
轴中的x
绘制z
的频率。
这些是我的问题:我有一个两列数组(x
和y
)并需要将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
谢谢!
答案 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")