gnuplotで軸を数値ではなく任意のラベルで表示する方法(usingでticlabelsを用いる)

gnuplotで以下のグラフのようにx軸を数値ではなく、任意のラベルに割り当てて表示する方法を紹介していきます。

このグラフはデータファイルとしては以下のようになっています。
サンプル-壱 3
サンプル-弐 4
サンプル-参 1
サンプル-四 2


方法としてはusingの書式でticlabesを設定する方法と、setコマンドでxtics listを設定する方法があります(その他にもあるかも)。
上の例のようにデータファイルに書かれているラベルを用いたい場合はusingで設定する方を用いるのが便利でしょう。今回はこちらのticlabelsを用いる方法を紹介していきます。


ticlabelsについて

ticlabelsは設定の総称で、実際に設定するのは以下に示すような各軸の設定項目になります。
  • x軸 : xticlabels, x2ticlabels
  • y軸 : yticlabels, y2ticlabels
  • z軸 : zticlabels

usingで指定するときの書式

まずもっとも短いであろう書式を書いておきます。
gnuplot> plot 'test01.dat' using 2:xticlabels(1) with boxes
これは一見するとそれほど難しくはないのですが、usingの書式からすると結構違和感のある書き方に見えるかと思います。
usingの部分だけ見ると
「using 2:xticlabels(1)」
となってますが、この書き方だとデータファイルの2列目がx軸、1列目のラベルがy軸のように見えるかと思います。しかし実際にはこれは2列目はy軸、1列目のラベルがx軸となる設定の書き方になっています。

なぜこのような書き方になるのかやや分かり難いのですが、これはusingで設定すると言っても
  • プロットの指定部分とticlabelsの指定部分は分かれている
と考えると理解しやすいでしょう。

そして再び
「using 2:xticlabels(1)」
という書き方を見ると、これはプロットの指定部分は「2」、ticlabelsの指定部分は「xticlabels(1)」という書き方になっています。
以前のブログ
で説明したように、
「using 2」
と指定した場合は
「using 0:2」
と解釈されます。ここで出てくる「0」はデータファイルの列ではなく、「0, 1, 2, ...」となる擬似的に生成される列となります。
なので
「using 2:xticlabels(1)」
というのは
「using 0:2:xticlabels(1)」
と見なすことが出来るでしょう。データファイルのxの値が「0, 1, 2, ...」でそれがデータファイル1列目に書かれているラベルに置き換えられると見ると分かりやすいかと思います(あくまでも自分がそう解釈しているだけで、gnuplotの内部の仕組みがそうなのかまでは踏み込んでません)。

なので、ticlabelsでラベルを割り振る場合はusingで指定するといっても書式についてはそれ用の考え方を意識しておく必要があります。


ここまでx軸をラベルにする方法を述べてきましたが、y軸の値をラベルにしたい場合はyticlabelsを用いて指定します。z軸の場合はzticlabelsになります。

ticlabelsの短縮形

xticlabels(1)は短くxtic(1)と書くことも出来ます。y軸、z軸も同様の短縮形で書くことが出来ます。

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


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

コメント

スポンサーリンク


このブログの人気の投稿

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

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

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

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

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