研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

gnuplot 色設定

2012-03-15 03:07:13 | Weblog
GNUPLOT は非常に強力なプロットソフトウェアで私も頻繁にお世話になっている。GNUPLOT は特に扱えるファイルサイズの上限もなく、細かな調整ができるのでお気に入りである。

しかしながら、とりあえずのデータ描画にも少々煩い設定をしなければならないことが気になるところで、特に描画する線の設定に面倒さを感じる。とはいえ default の設定ではあまりにも見づらいため、描画する線の数だけ set style を用いて設定を行うことが一般的である。とりあえずのデータ描画で重要視しているのは可読性で、主に実験結果をまとめて性能評価の際に用いるが、どの色をどの順番で選んだら綺麗に描画されるのか、非常に悩ましい。

そこで簡単にそこそこのグラフを描画するための方法を考えてみた。値によって色を割り振る palette を用いる。以下に示すのは sin(x+(i-1)/(20-19)), x=[-pi:pi], i=[1:20] の sin 曲線である。palette は[0.0:1.0] で色の指定を行うため、[0:1] に正規化する必要がある。例では cp(s,e,i) 関数を用いて実現している。

データファイルに対しても同様に行うことができる。その際には using i などとすれば良い。

#!/usr/bin/env gnuplot
set terminal postscript eps enhanced color 16;
set tics out;
set palette rgbformulae 22,13,-31;
unset colorbox;
set key below

set xrange [-pi:pi];
start = 1; end = 20;

cp(s,e,i) = (i-real(s))/real(e-s);

set out 'sin_curve.eps';
plot for [i=start:end] sin(x + cp(start,end,i)) with lines \
    linetype 1 linewidth 4.0 \
    linecolor palette frac cp(start,end,i) \
    title sprintf("n=%d (%f)", i, cp(start,end,i));



最新の画像もっと見る

コメントを投稿