研究プロジェクト
シミュレーション結果の可視化法 (gnuplot編)
シミュレーション研究では、膨大な計算データがアウトプットされ、それらを如何にして効果的に見せるかを考える事は、シミュレーション研究者にとっての一つの大きな課題です。本記事では、その1例としてgnuplotを用いた2次元カラーコードの制作方法を解説します。
gnuplot
はもっともポピュラーなグラフ描画ツールの1つです。Linux 版と Windows 版の両方があること、 たいていの Linux 環境ではデフォルトでインストールされていること、3次元プロットやカラープロットが
容易にできることなどから、気軽に利用可能で機能的なツールです。
作成するグラフに凝りたいときは、自分で工夫をしたり、
他の描画ツールと組み合わせて使う事も出来ます。
初期設定や、非常に複雑なプログラミングについては本ページでは触れませんが、様々な資料やティップスがウェブ上で公開され、書籍で出版されていますので、それらを参考にしてみて下さい。
gnuplotのホームページへリンク
E-t ダイアグラム風カラーコンターの設定
黒背景スライド用に背景透過 GIF で保存する方法
プレゼンテーション用のスライドの背景に色付きのものを使うとき、グラフの背景が白色のままだと グラフの周りが白くなってかっこ悪いです。そこで、グラフの背景を透過させる方法を紹介します。 ここでは、黒背景スライドに載せることを想定し、グラフの軸や目盛を白にします。
まず、グラフを eps 形式で保存します。
gnuplot> set output "sample.eps"
gnuplot> plot "sample.dat"
次に、eps ファイルの中身を編集し、グラフの軸と目盛の色を変更します。 eps ファイルの 51〜52行目に書かれている
/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
最後に、ImageMagick を使って透過 GIF に変換します。
さきほど、グラフの軸と目盛の色を 1 1 1 に指定しなかったのは、背景色を透過化するときに 一緒に透過化してしまわないようにするためです。
グラフ作成作業のバッチ化
gnuplot では、あらかじめ作成したバッチファイルを読み込むことが出来ます。例えば、
set logscale x
splot "sample.dat"
しかし、このバッチファイルではループ等の処理は行えず、 大量に図を出力するときには面倒です。そこで、バッチファイルを作成し 実行させるシェルスクリプトを作成します。 ここでは例として、sample01.dat 〜 sample10.dat をカラープロットし、 eps として保存し、グラフの軸と目盛を白にした背景透過 GIF に変換するスクリプトを 示します。
while [ $n -le 10 ];
do
if [ $n -lt 10]; then
dat = sample0$n .dat
eps = sample0$n .eps
gif = sample0$n .gif
else
dat = sample$n .dat
eps = sample$n .eps
gif = sample$n .gif
fi
echo "set pm3d map" > sample.plt
echo "set palette defined (0 \"black\", 20 \"blue\", 45 \"skyblue\", 60 \"green\", 75 \"yellow\", 95 \"orange\", 100 \"red\")" >> sample.plt
echo "set terminal postscript enhanced color" >> sample.plt
echo "set output \"$eps \"" >> sample.plt
echo "splot \"$dat \"" >> sample.plt
gnuplot sample.plt
black = 0\\\ 0\\\ 0
white = 0.99\\\ 0.99\\\ 0.99
sed -e "51,52s/$black/$white/g" $eps > $eps
convert -transparent white $eps $gif
n=`expr $n + 1`
done
<湯村翼 / 編集: 田中健太郎>