を使用して 3 次元でサーフェスをプロットしようとしていますが、plot3D
問題が発生しています。皆さんが助けてくれるか、少なくとも私を正しい方向に向けてくれることを願っています. それが解決策である場合、私は別のパッケージを使用することにオープンです。
数十の列を持つタブ区切りのテキスト ファイルを読み込んでいます。それぞれが独自の変数であり、各行は 1 つの観測値です (意味があることを願っています)。
r_NH4
x 軸にマッピングしたいのr_NO3
は y でremoval_N
あるとしましょうz
。
plot3D
入力が行列の場合、x と y が単調増加する必要があります。私のデータの構造とサイズにより、両方を並べ替えることが難しくなっています (少なくとも、その方法を理解することはできませんでした)。x
man ページを読んで、リストを使用して, 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_NH4
はr_NO3
奇妙で、入力と一致していませんでした (しかし、少なくとも散布図は作成されていません!)。
正しい座標に関連付けられたまま、変数x
と変数の両方で並べ替える方法はありますか?y
z
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