gnuplotの軸(axis)の設定 : zeroaxisで書いた軸に目盛りを描く

以前のブログ記事でzeroaxisを設定することでグラフ中にx軸、y軸を描く方法を解説しました。
その時作ったグラフは以下のようになっています。


ここで目盛りについて見てみると、グラフの枠に沿っては目盛りはあるのですがzeroaxisの設定で描かれた線には目盛りが描かれていません。
今回は、このzeroaxisで描いた線に目盛りを描く方法を解説していきます。

zeroaxisに目盛りを描く設定

zeroaxisでx軸、y軸を描く

まず以前のブログ記事と同様にx軸とy軸を描きます。
gnuplot> set xzeroaxis linetype 1 linecolor "black"
gnuplot> set yzeroaxis linetype 1 linecolor "black"


xtics、yticsの設定により枠ではなく軸に目盛りを描くようにする

目盛りの設定に関しては主にxtics、yticsで行うことになります。設定項目は多いのですが、その中に目盛りを描く位置の指定項目があります。指定出来る場所は以下の2つ。
  • border
  • axis
デフォルトではborder、つまりグラフの枠に目盛りが描かれる設定になっています。なので、x軸に対して目盛りを描くためにはaxisに設定すればいいので
gnuplot> set xtics axis
とします。y軸に対しても同様に
gnuplot> set ytics axis
とします。ここまででグラフをプロットしてみると以下のようになります。


これだと目盛り間隔が広すぎてやや違和感があるので、以前のブログ記事で解説した小目盛りを描く設定により小目盛りを描き足します。
gnuplot> set mxtics
gnuplot> set mytics

なお小目盛りの位置の設定は目盛り、つまりxtics、yticsの設定に従います(詳しくは以前のブログ記事参照)。


小目盛りを描くことであまり違和感無く見れるグラフになったかと思います。
ここまでの設定をまとめると以下のようになります。
gnuplot> set xzeroaxis linetype 1 linecolor "black"
gnuplot> set yzeroaxis linetype 1 linecolor "black"
gnuplot> set xtics axis
gnuplot> set ytics axis
gnuplot> set mxtics
gnuplot> set mytics
gnuplot> plot x



最後に

まだ「0(ゼロ)」の位置の配置が機械的過ぎて違和感があったりします。これはgnuplotで修正する方法を探すのもいいですが、ベクターベースのファイルでアウトプットして別ツールで修正するのが楽かと思います。まぁ修正した方がいいかどうかも場合によるのでなんとも言えないですが。
とりあえず今回の話の解説はここで終わりますが、以下もう少し余談程度の話を載せておきます。

枠(border)と軸(axis)の両方に目盛りを描く

(ここからは余談程度の話です)
出来上がったグラフを見ると分かるように、軸に目盛りを描くよう設定すると枠には目盛りは描かれなくなります。xtics、yticsの設定ではborderとaxisは排他的な設定なので、どちらか一方しか選択出来ません。では、枠と軸の両方に目盛りを描きたい場合はどのようにすればいいでしょうか?

もしかしたら何かしらちゃんとした方法があるのかも知れませんが、自分なりに思い付いた方法を説明していきます。なおこの方法はトリッキーなため、すべての場合で使えるというものではないです。
ではどういった方法かというと、gnuplotの軸の設定で第二軸(x2tics、y2tics)が使えることを利用します。描きたい目盛りは枠と軸の2つなので、どちらかを第一軸、残りを第二軸にすればいいわけです。
通常は第二軸の目盛りは第一軸とは反対側の枠に描かれるため、枠の設定には向きません。なので、第二軸は軸の設定、第一軸は枠の設定としてグラフを描きます。第二軸の設定に必要な箇所は以下のようにしています。
gnuplot> set x2tics axis
gnuplot> set y2tics axis
gnuplot> set mx2tics
gnuplot> set my2tics

出来上がったグラフは以下の通り。


y軸の数字の位置がやや変わってしまっています。それと設定方法からして分かるように、プロットに第二軸を使用する場合にはこの方法は使うことは出来ないですね。


その他、gnuplot関連のブログ記事


Amazon データ解析関連書籍など

コメント

スポンサーリンク


このブログの人気の投稿

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplotでプロットなどの色をcolornameの指定で変更する

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法