2017-10-14 7 views
-2

私のコードは1000 snapshot_XXXX.datファイル(XXXX = 0001、0002、...)を返しています。これらは、特定の時刻に実行しているシステムの写真を撮る2つの列のデータファイルです。私は時間の経過に伴って変化する量の進化を示す2Dプロット(またはヒートマップ)を作成するために作成された順にそれらをミックスしたいと思います。いくつかの入力データファイルからの2Dプロット

gnuplotを使用してこれを行うにはどうすればよいですか?あなたは時間軸を下から上に行くしたいと仮定すると、あなたは次のことを試みることができる

+1

現在のコードを表示 – RomanPerekhrest

答えて

0

n=4 # Number of snapshots 

set palette defined (0 "white", 1 "red") 
unset key 
set style fill solid 

set ylabel "Snapshot/Time" 
set yrange [0.5:n+0.5] 
set ytics 1 

# This functions gives the name of the snapshot file 
snapshot(i) = sprintf("snapshot_%04d.dat", i) 

# Plot all snapshot files. 
# - "with boxes" fakes the heat map 
# - "linecolor palette" takes the third column in the "using" 
# instruction which is the second column in the datafiles 
# Plot from top to bottom because each boxplot overlays the previous ones. 

plot for [i=1:n] snapshot(n+1-i) using 1:(n+1.5-i):2 with boxes linecolor palette 

この例のデータ

snapshot_0001.dat snapshot_0002.dat snapshot_0003.dat snapshot_0004.dat 
1.0 0.0   1.0 0.0   1.0 0.0   1.0 0.0 
1.5 0.0   1.5 0.0   1.5 0.0   1.5 0.0 
2.0 0.5   2.0 0.7   2.0 0.7   2.0 0.7 
2.5 1.0   2.5 1.5   2.5 1.5   2.5 1.5 
3.0 0.5   3.0 0.7   3.0 1.1   3.0 1.5 
3.5 0.0   3.5 0.0   3.5 0.7   3.5 1.1 
4.0 0.0   4.0 0.0   4.0 0.0   4.0 0.7 
4.5 0.0   4.5 0.0   4.5 0.0   4.5 0.0 
5.0 0.0   5.0 0.0   5.0 0.0   5.0 0.0 

(gnuplotの5.0でテスト済み)この画像のような結果になります。あなたが順序を変更することができ

evolution with time from bottom to top

あなたが上から下へ行きたいなら、プロットの左から右へ移動したい場合は、おそらく thisが助けます(テストされません)。

+0

ありがとう、これは私の出発点です。 plotコマンドの第2列( ':(n + 1.5-i):')の意味は何ですか?さらに、より多くの色のパレットを使用できますか?私は通常2の代わりに8色を使用します。 – ManyBertin

+0

'1:(n + 1.5-i):2'は' x:y:color'を意味します。つまり、y値(時間)はスナップショットの数から計算されます(「n」はスナップショットの総数であり、「i」は現在プロットされているスナップショットの数であり、対応する行は「y = n + 1.5-i」に現れる)。パレットの色を設定するには、「ヘルプパレット」を参照するか、いくつかの例についてwwwを検索してください。 – maij

+0

どうもありがとう – ManyBertin

関連する問題