gnuplot : RGBでの色指定で16進数による指定を行う方法(数字の頭に"0x"を付ける)
16進数での色指定
以前、以下の記事でrgbcolor variableの解説をしました。このとき、RGBの値を10進数として扱う方法で説明しました。そこでは16進数で表された色(red : FF0000 など)の値を10進数に変換してgnuplotに渡すという方法を取りました。このときは
(※マニュアルを読むと10進数以外の指定方法もあるように読めるのですが、詳細は調べ切れていません)
と書いたのですが、その後調べたところ16進数のままでも値を渡せることが分かりました(16進数以外に8進数でも渡せます)。
16進数数値による色指定
gnuplotで16進数で数値を書き表す場合は、その数値の先頭に"0x"または"0X"を付けます。例えば、ff0000では0xff0000とします。gnuplotで16進数をこのように表すのは、C言語での書き表し方から来ているようです。その他のプログラミング言語でも16進数をこのように表記するものは多いので、理由はともかくそういうものだと考えればいいでしょう。
16進数で色指定するメリット
16進数で色指定出来ると、カラーピッカーで取得したRGB値をそのまま用いることが可能となります(#ff0000となっている場合#を0xに置き換える)。それと数値ではなく文字列"0xff0000"として色を指定する方法もありますが、数値のまま扱えば演算による色の作成も出来るという利点があります。
プロット例
基本的な例
16進数で色を指定する場合の基本は以下のようになります。gnuplot> plot x linewidth 10 linecolor rgbcolor 0xff0000
データファイルのプロット
別の例として、以下のデータファイルをプロットしてみます。1 black 0x000000
2 white 0xffffff
3 red 0xff0000
4 lime 0x00ff00
5 green 0x008000
6 blue 0x0000ff
7 gray 0x808080
8 yellow 0xffff00
9 orange 0xffa500
10 pink 0xffc0cb
11 cyan 0x00ffff
12 purple 0x800080
プロットコマンドは以下の通り(ラベルも一緒に出力してるので、やや長くなっています)。
gnuplot> plot [0:16][0:13] 'color01.dat' u 1:1:3 w p pt 5 ps 3 lc rgb variable, '' u 1:1 w p pt 4 ps 3 lc 'black', '' u 1:1:2 w labels offset 5,0, '' u 1:1:3 w labels offset 13,0
gnuplot関連のブログ記事
コメント
コメントを投稿