Gnuplot でプロットの色をグラデーションで変えたい
以下の2つについて解説します。
- 1つのデータをプロットする際に徐々に色が変化するグラフを描画
- 複数のグラフを描画する際に、それぞれの色を疑似グラデーション変化させる
また、動作は Gnuplot 5.0 patch level 3 で確認しています。
1. 1つのデータをプロットする際に徐々に色が変化するグラフを描画¶
上図のような画像を描画する方法です。
plot "data.dat" u 2:3:1 w l lc palette
plotするときに用いているusingコマンドに与える三つめの引数(?) がグラデーションに利用するインデックスになるようです。
linecolor (lc)
コマンド後にある palette
はいくつかの色が列挙されている配列のようなもので、
前述のインデックスによりこの palette
の中の特定の色を選んでいます。
実際にプロットされる際には選んだ色の間を適当に補完した形でスムージングして綺麗なグラデーションで
表示してくれているようです。
上の例では単に palette
と指定していますが、パレットの中身は set palette define
コマンドによって
自分で指定することが可能です。
例えば、赤から青に徐々に変化するパレットを設定するには以下の通り。
set palette define (0 "red", 1 "blue")
上記のコマンドで利用する色の名前は show pallete
コマンドにより確認可能です。
show palette colorname
因みに右に表示されるボックスが邪魔、という場合には以下のコマンドで消せます。
unset colorbox
参考ページ
2. 複数のグラフを描画する際に、それぞれの色を疑似グラデーション変化させる¶
いくつかのグラフをプロットする際に色を変化させる方法です。 こちらについては、素直にグラデーションにする方法が見つからなかったので、 手動で色を設定する方式になっています。
色を指定するのに style
を利用します。この style
に指定する色は
自分で手で打っていき、グラデーションを作り出します。
set style line 2 lc "#0000ff"
set style line 3 lc "#0022ff"
set style line 4 lc "#0044ff"
set style line 5 lc "#0066ff"
set style line 6 lc "#0088ff"
set style line 7 lc "#00bbff"
set style line 8 lc "#2299ff"
これを設定した上で、 plot
する際に linestyle (ls)
を指定します。
plot for [n=2:8] "test.dat" u 1:n w l ls n
これで n
を 2から8まで変化させつつグラフをプロットしているのですが、
この時に ls n
を指定することで linestyle
を n
の通りに変化させつつプロットしています。
このやり方だと余り多くのグラフの描画には向いていないと思います。 大量のグラフをプロットする際にはデータ解析ソフトなどを利用するのが良いのかもしれません。
コメント
コメントを投稿