这是我的目标:根据 z
轴上的 x
绘制 y
的频率。
这些是我的问题:我有一个两列数组(x
和 y
),需要将 x
划分为类(p. 11)。例如 0.2 ou 0.5) 并计算每个 x
类的 y
频率。该图应显示为“地面”平面图中的 x-y
图,以及 z
轴中的频率。它可以像一个表面或 3D 直方图。我尝试使用 plot3D
包的 hist3D
函数来实现它,但我不知道我做错了什么。
这是我正在尝试做的一个示例:
https://www.safaribooksonline.com/library/view/r-data-visualization/9781783989508/ch06s05.html
谢谢!!
最佳答案
使用一些模拟数据,这应该可以满足您的需求。关键是您必须创建双变量箱,使用 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")
关于r - 如何在R中制作3D直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30563340/