web-dev-qa-db-ja.com

Rで3Dヒストグラムを作成する方法

これが私の目標です。y軸のxに従ってzの頻度をプロットします。

これらは私の問題です:2つの列の配列(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

ありがとう!!

14
José Ricardo

シミュレートされたデータを使用すると、必要なものが得られます。重要なのは、cut()関数を使用して2変量ビンを作成する必要があることです。次に、ビニングされた因子をレベルとして扱い、以下のように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

25