Как сделать 3D-гистограмму в R

Это моя цель: Настроить частоту 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

Спасибо!!

Ответ 1

Используя некоторые смоделированные данные, вы должны получить то, что хотите. Ключ в том, что вам нужно создать свои двумерные бункеры, выполненные с помощью функции 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")

3D2D