【gnuplot】コマンド “test” を用いた出力サンプルの生成

スポンサーリンク
gnuplot
この記事の内容
  • gnuplotのtestコマンドを使って出力結果のサンプルを生成
  • 出力形式 (terminal) とカラーパレット (palette) のサンプルを出力するプログラムを作成
  • ポイント (pointtype),線 (linetype),色 (linecolor),点線 (dashtype),塗りつぶしパターン (pattern fill)のリストとしても利用可能

どうも,Hiro(@hiroloquy)です.

今回はgnuplotのtestコマンドを使って出力結果のサンプルを生成する方法をまとめます.

gnuplotではset terminal '出力形式名'でターミナルの種類を変更することができます.たとえばqtpnggifpostscriptなど…(出力形式については竹野研究室@新潟工科大学のページを参照)

様々な出力形式があるのは嬉しいことですが,ラベルのフォントやグラフの線幅,色の感じなどが微妙に違っていたりします

なので,ターミナルを変更すると出力結果を確認しながら自身で微調整することになります.
ただ,せめてどのような違いがあるのを先に把握しておきたい.

そこで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を実行するプログラムの作成

terminalpalete,2つのtestを同時に実行するプログラムを作りました.

Test_terminal_and_palette.plt
# Display of line and point styles and other useful things supported by the terminal
set terminal qt 0
test

# Display RGB components and NTSC coefficients of the current color palette
set terminal qt 1
test palette

qtの後ろに0, 1と番号がありますが,これはウィンドウ番号です.
注意 3行目のtesttest terminalでも同じであるとgnuplot 5.4 ユーザーマニュアルには書かれていた.しかし,test terminalで実行した場合,なぜか以下のエラーが出たためtestのみにしている.

line3 : unexpected or unrecognized token: terminal
実行環境
  • macOS Catalina 10.15.6
  • gnuplot version 5.4 patchlevel 0

terminal qtで出力サンプルを生成

プログラムを実行するとqtで2つのウィンドウが生成されます.

出力形式 (terminal) のサンプル

選択した出力形式と使用したgnuplotのバージョンは左上に自動的に表示されます.

このサンプルを見れば,ポイント (pointtype),線幅 (linetype),色 (linecolor),点線 (dashtype),塗りつぶし (pattern fill)の番号がどれを指すかがすぐにわかり,番号の対応関係を調べるリストとしてとても便利です.

また,中央にあるテキスト等からフォントの具合を見たり,$x_0^{n+1}$の上付き文字,下付き文字からenhanced textの出力具合を確認したりできます.

他に,右上の重なる2つの六角形では,塗りつぶしたときの色味,少し透明化された緑色が他の色と重なったときの処理結果なども確認できます.

このように,test terminalでは指定した出力形式(ここではqt)の描画状態をカンタンに確認することができます.

test terminal (terminal qt, Gnuplot window 0)

カラーパレット (palette) のサンプル

このサンプルではグラフとカラーマップがあるため,実際にグラフを描いたときの様子が確認できます.目盛りのフォントサイズやグラフの鮮明さ,カラーマップの具合などを把握するのに便利です.

test palette (terminal qt,Gnuplot window 1)

出力されたパレットのデフォルトの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枚目の出力サンプルは番号の対応関係の早見表としてとても便利なので,皆さんもぜひ出力して活用してください.

コメント

タイトルとURLをコピーしました