6

データフレームに次のデータがあります。

**x** in (0,1)
**y** in [0,1]
**z** in [0,1]

例えば:

X,Y,Z
0.1, 0.2, 0.56
0.1, 0.3, 0.57
...

このタイプのチャートにそれらをプロットしたいと思います: 3D プロット

R を試してみましたが、あまり派手ではない 3d scatterplot しか得られませんでした。ラティス 3D ワイヤーフレームについても読みましたが、理解できませんでした。

RでワイヤーフレームのようなMatlabを取得するにはどうすればよいですか? どのようなデータ変換が関係していますか?

これは、ドキュメントのサンプル コードです。

x <- seq(-pi, pi, len = 20)
y <- seq(-pi, pi, len = 20)
g <- expand.grid(x = x, y = y)
g$z <- sin(sqrt(g$x^2 + g$y^2))
wireframe(z ~ x * y, g, drape = TRUE,
aspect = c(3,1), colorkey = TRUE)

特にはっきりとは思いません。

EDIT :persp3d関数は正常に動作し、1 つの色で 3D プロットを生成できました。z 値を基準にしてカラー スケールを設定するにはどうすればよいですか?

ヒントをありがとう、Mulone

4

1 に答える 1

13

を使用outerして z 値を作成し、次に を使用perspしてプロットします。

z <- outer(x,y, function(x,y) sin(sqrt(x^2+y^2)))
persp(x,y,z)

パース

表示角度の色付けと設定のオプションがあります。 を参照してください?persp。Matlab スタイルのカラーリングの 4 番目の例を参照してください。

インタラクティブなプロットについてpersp3dは、rglパッケージでの使用を検討してください。

require(rgl)
persp3d(x,y,z,col="blue")

編集

persp色を追加するには、色がファセットの中心ではなく頂点に関連するため、の方法とは少し異なりますが、簡単になります。

jet.colors <- colorRampPalette( c("blue", "green") ) 
pal <- jet.colors(100)
col.ind <- cut(z,100) # colour indices of each point
persp3d(x,y,z,col=pal[col.ind])

persp3d

ヘルプ ファイルでは、パラメータを追加することを推奨していますsmooth=FALSEが、それは個人的な好みによるものです。

于 2011-09-27T11:48:08.597 に答える