どうも,Hiro(@hiroloquy)です.
今回はgnuplotのtest
コマンドを使って出力結果のサンプルを生成する方法をまとめます.
gnuplotではset terminal '出力形式名'
でターミナルの種類を変更することができます.たとえばqt
やpng
,gif
にpostscript
など…(出力形式については竹野研究室@新潟工科大学のページを参照)
様々な出力形式があるのは嬉しいことですが,ラベルのフォントやグラフの線幅,色の感じなどが微妙に違っていたりします.
なので,ターミナルを変更すると出力結果を確認しながら自身で微調整することになります.
ただ,せめてどのような違いがあるのを先に把握しておきたい.
そこでtest
コマンドを使って,ある出力形式でのサンプルを生成する方法を紹介します.このサンプルがあれば,その出力形式でのフォントや線幅,カラーパレットなどの具合が一目でわかります!
補足 作成したサンプルは,plot
コマンドで指定するpointtype
(pt
) やlinecolor
(lc
) などの番号がどれに対応するかがすぐにわかるリスト(早見表)としても活躍するので,test
コマンドはかなり便利です.
testコマンドとは?
gnuplot公式ホームページのgnuplot 5.4 ユーザーマニュアルによると,test
は出力形式やパレットでどのような出力が行えるかをテストして表示するコマンドです.
書式は次のとおりで,{terminal | palette}
の2つのどちらかを選びます.
test {terminal | palette}
test / test terminal
どちらの表記でもOK.現在set terminal
で指定している出力形式で使える線の種類 (linetype
)、点の種類 (pointtype
)などの描画を生成する.terminal
が現在どの出力形式に設定されているか分からない場合は,show terminal
で確認.
test palette
現在のカラーパレット (palette
) のRGB成分を3つのグラフR(z),G(z),B(z) (0≦z≦1) で示す.
また,RGBを灰色階調に写像するNTSC係数を用いて計算された視光度も描画され,これらの対応関係は$PALETTE
という名前のデータブロックにもロードされる.
2種類のtestを実行するプログラムの作成
terminal
とpalete
,2つのtest
を同時に実行するプログラムを作りました.
qtの後ろに0, 1と番号がありますが,これはウィンドウ番号です.
注意 3行目のtest
はtest terminal
でも同じであるとgnuplot 5.4 ユーザーマニュアルには書かれていた.しかし,test terminal
で実行した場合,なぜか以下のエラーが出たためtest
のみにしている.
line3 : unexpected or unrecognized token: terminal
terminal qtで出力サンプルを生成
プログラムを実行するとqtで2つのウィンドウが生成されます.
出力形式 (terminal) のサンプル
選択した出力形式と使用したgnuplotのバージョンは左上に自動的に表示されます.
このサンプルを見れば,ポイント (pointtype
),線幅 (linetype
),色 (linecolor
),点線 (dashtype
),塗りつぶし (pattern fill
)の番号がどれを指すかがすぐにわかり,番号の対応関係を調べるリストとしてとても便利です.
また,中央にあるテキスト等からフォントの具合を見たり,$x_0^{n+1}$の上付き文字,下付き文字からenhanced textの出力具合を確認したりできます.
他に,右上の重なる2つの六角形では,塗りつぶしたときの色味,少し透明化された緑色が他の色と重なったときの処理結果なども確認できます.
このように,test terminal
では指定した出力形式(ここではqt)の描画状態をカンタンに確認することができます.
カラーパレット (palette) のサンプル
このサンプルではグラフとカラーマップがあるため,実際にグラフを描いたときの様子が確認できます.目盛りのフォントサイズやグラフの鮮明さ,カラーマップの具合などを把握するのに便利です.
出力されたパレットのデフォルトのtraditional pm3d (rgbformulae 7, 5, 15
)と呼ばれるもので,show palette rgbformulae
で調べると,7:sqrt(x),5:x^3,15:sin(360x)と番号に対して関数が定義されています.
サンプルを再度確認すると,赤色の関数がR(z)=sqrt(z),緑色の関数はG(z)=z^3,青色の関数はB(z)=sin(360x)になっていることがわかります.B(z)に関しては負値を取る範囲0.5<z<1は0扱いです(RGB値はそれぞれ0〜255の正の値).
test palette
の手前でset palette rgbformulae R(z), G(z), B(z)
を入力してカラーパレットを指定すると,上部のグラフおよび下部のカラーバーが変化するので,自分好みのパレットを構成する際に便利です.
set palette rgbformulae R(z), G(z), B(z)
test palette
以下3つのサンプルはgnuplot demo script: pm3dcolors.demを参考にしています.
別の出力形式でtestを実行した場合
上記ではqt
に設定した場合の出力結果です.
ただ,もし出力形式を変更してgif
によるアニメーションや,eps
/pdf
によるレポート・論文用画像などを作りたい場合,この記事を参考にしてみてください.
さいごに
今回はgnuplotのtest
コマンドの実行結果と出力結果の利便性についてまとめました.
特に1枚目の出力サンプルは番号の対応関係の早見表としてとても便利なので,皆さんもぜひ出力して活用してください.
コメント