2

x、y、z ポイント (8000 ポイント) の大規模なセットがあり、x、y は固定され、z 座標は各タイム ステップ (約 100 タイム ステップ) で変化します。各タイム ステップには個別のデータ ファイル (x,y ,z) 各時間ステップ。時間の経過に伴う z 座標の変化を示すために、各ファイルのこれらのデータ ポイントをプロットする最良の方法は何でしょうか? 各時間ステップで 3D 表面/散布図を生成し、それらの gif/bmp ファイルを使用してビデオ ファイルを作成することができます。プロット ソフトウェアを使用して各時間ステップで x、y、z をプロットできますが、手動で 100 回行うのは面倒です。R と gnuplot でそれを行う方法を教えてください。ここにリンクされているような画像ファイルを作成したい。 http://dl.dropbox.com/u/9267983/stack/1.gif

ありがとうございました

たとえば、特定の時間のデータ セット = 1.0 分

         4.00      4.00    126.6310
         8.00      4.00    126.3585
        12.00      4.00    126.1797
        16.00      4.00    126.0514
        20.00      4.00    125.8081
        24.00      4.00    125.3174
        28.00      4.00    124.6824
        32.00      4.00    124.0422
        36.00      4.00    123.4376
        40.00      4.00    122.8637
        44.00      4.00    122.4779
        48.00      4.00    122.4673
        52.00      4.00    122.4825
        56.00      4.00    122.2762
        60.00      4.00    122.5483
        64.00      4.00    122.0322
        68.00      4.00    122.5442
        72.00      4.00    122.2031
        76.00      4.00    122.4452
        80.00      4.00    122.3936
        84.00      4.00    122.4258
        88.00      4.00    122.4239
        92.00      4.00    122.4239
        96.00      4.00    122.4226
4

2 に答える 2

4

R では、パラメトリック プロットに最適な 3D オプションはrglパッケージです。

require(rgl)
x=sin( (1:100)/10 )
 y=cos( (1:100)/10 )
 z=(1:100)/100
 lines3d(x,y,z)
 #after rotation with cursor controls
 rgl.postscript("spiral.ps""
 # and conversion to a png file

ここに画像の説明を入力

ポイントを 50 ~ 100 ポイントいただければ、実際のデータで実証できます。

于 2012-12-25T02:50:02.070 に答える
1

あなたのサンプル データに基づいて、一連の偽のデータを生成し、一連のプロットを生成して、それらを個別の画像 (連続した名前) として保存しました。このような画像は、ImageMagick、QuickTime Pro、GIMP、またはその他の有能なグラフィック エディターを使用して、アニメーション gif またはムービー ファイルに変換できます。

ここに画像の説明を入力

以下は私のgnuplotコードです。do ループは gnuplot バージョン 4.6 で新しく導入されたもので、以前のバージョンでは機能しないことに注意してください。古いバージョンの gnuplot では、外部シェル スクリプトを使用して同じスクリプトを複数回実行し、出力ファイル名とデータ ファイル名を変更して同じ結果を生成することができます。

set term pngcairo
set palette defined ( 0    '#000fff',\
                      0.99 '#000fff',\
                      1    '#90ff70',\
                      1.99 '#90ff70',\
                      2    '#ee0000',\
                      2.99 '#ee0000')
set ticslevel 0
set view 51,120

do for [t=0:29] {
  set output sprintf("%d.png", t)
  splot sprintf("< awk '{if ($2!=prev) print ; prev=$2; print $0}' %d.dat", t) w p pt 7 linecolor palette notitle
}
于 2012-12-25T21:34:10.340 に答える