0

を使用して 3 次元でサーフェスをプロットしようとしていますが、plot3D問題が発生しています。皆さんが助けてくれるか、少なくとも私を正しい方向に向けてくれることを願っています. それが解決策である場合、私は別のパッケージを使用することにオープンです。

数十の列を持つタブ区切りのテキスト ファイルを読み込んでいます。それぞれが独自の変数であり、各行は 1 つの観測値です (意味があることを願っています)。

r_NH4x 軸にマッピングしたいのr_NO3は y でremoval_Nあるとしましょうz

plot3D入力が行列の場合、x と y が単調増加する必要があります。私のデータの構造とサイズにより、両方を並べ替えることが難しくなっています (少なくとも、その方法を理解することはできませんでした)。xman ページを読んで、リストを使用して, y,zを一度に入力できることを知りました (順序については言及しません)。

plot3d が解釈するリストを作成します。

list.r_conc<-list(x=r_NH4,y=r_NO3,z=removal_N,3)

そして、私はプロットしようとしますplot3d

library(plot3D)
plot3d(list.r_conc,
    xlab="x",
    ylab="y",
    zlab="z",
    xlim=c(0,40),
    ylim=c(0,40)
    )

その結果、rgl各点を表面ではなく散布図としてプロットするオブジェクトが作成されます。

plot3Dコマンドに引数を追加して、これをサーフェスに変える方法はありますか?

私のデータが不連続である、または順序付けされていないという事実は、サーフェスがプロットされないようにしていますか?

解決策を探していると、この質問にたどり着きました。解決策をたどろうとして、次のスクリプトを試しました:

z=as.matrix(data.frame(r_NH4,r_NO3))
z=matrix(removal_N,ncol=length(r_NH4),nrow=(r_NO3))
persp3d(z=z)

出力はごちゃごちゃした平面で、 と の軸r_NH4r_NO3奇妙で、入力と一致していませんでした (しかし、少なくとも散布図は作成されていません!)。

正しい座標に関連付けられたまま、変数xと変数の両方で並べ替える方法はありますか?yz

plot3D は、(モデルや関数の代わりに) 離散値を使用してサーフェスをプロットすることさえできますか?


r_NH4    r_NO3    removal_N
2.220    16.816     1.609
1.734    13.280     4.262
0.000    21.586    -3.240
25.166    3.111     3.479
25.652    2.887     4.708
31.751    3.021    -4.899
17.042    4.868     3.118
23.259   15.917     2.968
23.560   15.773     3.250
24.973   14.533     0.848
25.452   13.973     2.880
21.599   11.528    -4.727
25.243   13.193     0.950
25.049   13.763    -1.134
25.434   14.550     2.152
26.499   15.446     0.606
25.661   15.207     2.449
19.422   10.645     2.350
4

0 に答える 0