1

現在、次のような3Dパラメトリックグラフを作成しようとしています。

これはここで見つけることができます:http://gnuplot.sourceforge.net/demo/surface1.html

ここにスクリプトがあります:http://gnuplot.sourceforge.net/demo/surface1.17.gnu

私のグラフは次のようになります。

ここに画像の説明を入力してください

そして私はこれを使用しています:

set datafile separator ","
set parametric
x0 = 0 
x1 = 1
x2 = 2
splot 'January5.csv' u x0:1:3 with lines, 'test.csv' u x1:1:2 with lines

明らかに、私のグラフは比較に欠けています。x軸に沿ってプロットする最初のグラフの機能が本当に気に入っています。私はこれを複製しようとしてきましたが、今のところ失敗しています。

4

1 に答える 1

1

parametricファイルから生データをプロットしたいだけなら、本当に頼る必要はありません。

xyz.txtノイズの多い正弦波時系列のように見えるサンプルデータの場合:

1 0 9.43483356296457
1 0.0204081632653061 10.2281885806631
1 0.0408163265306122 10.9377108185805
...
3 0.959183673469388 10.2733398482972
3 0.979591836734694 10.1662011241681
3 1 10.4628112585751

(最初の列はxの位置をコード化する整数値であり、2番目と3番目の列はyとz用です。最後にこれらのデータを生成するために使用したRスクリプトを追加しました。)

私は単に使用します

splot 'xyz.txt' using 1:2:3 with impulses

ここでimpulses、zの最小値から垂直線を描画します。この振る舞いを変更することができます。たとえば、z = 0から開始する場合は、次のように使用できます。

set zrange [-1:12]
set ticslevel 0
zmin = 0
zr(x) = (x==0 ? zmin : x)
splot 'xyz.txt' using 1:2:(zr($3)) with impulses

yには等間隔の値を使用しましたが、それは実際には問題ではないことに注意してください。

ここに画像の説明を入力してください

もちろん、他のバリエーションも可能です。ライナーチャートやウォールチャートを使用したフェンスプロットがさらに役立つ場合があります。


生成に使用されるRスクリプトxyz.dat

n <- 50  # number of observation per sequence
k <- 3   # number of sequences
t <- seq(0, 1, length=n)  # sampling rate
xyz <- data.frame(x=rep(1:k, each=n), y=t, z=sin(2*pi*t*2.1)+.25*rnorm(n*k)+10)
write.table(xyz, file="xyz.txt", row.names=FALSE, col.names=FALSE)
于 2012-01-31T12:34:08.700 に答える