Rを使用してプロットする3組のデータセット(X、Y、Zポイント)があります。
データから表面プロットを作成し、表面プロットに等高線マップを重ね合わせて、等高線マップが表面プロットからの「影」または投影であるような印象を作成したいと思います。等高線図は、表面プロットの下に表示されます。
私のデータセットは次のようになります。
Axis | Data Type
-------------------
X | Date value
Y | Float value
Z | Float value
どうすればこれを達成できますか?
編集:
私はあなたがあなたの次元の1つが日付であると指摘したのを見ました。その場合、 ジェフライアンのchartSeries3dを見てください 3次元時系列をグラフ化するように設計されています。ここで、彼は経時的なイールドカーブを示しています。
元の回答:
私が理解しているように、3Dサーフェスプロットの下の平面への投影として、countourマップが必要です。 2つのプロットを作成してからそれらを組み合わせる以外に、これを行う簡単な方法があるとは思わない。 これに役立つ空間ビューを見つけてください 。
3Dプロットには2つの主要なRパッケージがあります:rgl(または関連する misc3d を使用できます=パッケージ)およびscatterplot3d ().
rgl
Rglパッケージは、OpenGLを使用してインタラクティブな3Dプロットを作成します( rglのWebサイトで詳細を参照 )。 surface3d
関数を使用した例を次に示します。
library(rgl)
data(volcano)
z <- 2 * volcano # Exaggerate the relief
x <- 10 * (1:nrow(z)) # 10 meter spacing (S to N)
y <- 10 * (1:ncol(z)) # 10 meter spacing (E to W)
zlim <- range(z)
zlen <- zlim[2] - zlim[1] + 1
colorlut <- terrain.colors(zlen,alpha=0) # height color lookup table
col <- colorlut[ z-zlim[1]+1 ] # assign colors to heights for each point
open3d()
rgl.surface(x, y, z, color=col, alpha=0.75, back="lines")
Alphaパラメーターは、この表面を部分的に透明にします。これで、サーフェスのインタラクティブな3Dプロットができたので、その下にカントリーマップを作成します。 rglを使用すると、既存の画像にさらにプロットを追加できます。
colorlut <- heat.colors(zlen,alpha=1) # use different colors for the contour map
col <- colorlut[ z-zlim[1]+1 ]
rgl.surface(x, y, matrix(1, nrow(z), ncol(z)),color=col, back="fill")
このサーフェスでは、もう一方のサーフェスの下に平面があるようにheights = 1を設定します。これは最終的には次のようになり、マウスで回転できます。
scatterplot3d
scatterplot3dは、Rの他のプロット関数に少し似ています( ビネットを読む )。以下に簡単な例を示します。
temp <- seq(-pi, 0, length = 50)
x <- c(rep(1, 50) %*% t(cos(temp)))
y <- c(cos(temp) %*% t(sin(temp)))
z <- c(sin(temp) %*% t(sin(temp)))
scatterplot3d(x, y, z, highlight.3d=TRUE,
col.axis="blue", col.grid="lightblue",
main="scatterplot3d - 2", pch=20)
この場合、画像をオーバーレイする必要があります。 R-Wiki 透明な背景画像の作成に関する素敵な投稿があります 。