gnuplotの小技 : マウスで示した位置にラベルを貼る方法(間接的に)

gnuplotのマウス操作によるラベルなどの任意位置への設定

 gnuplotはマウスで操作出来ることはあまり無く、ラベルなどのパーツをドラッグ・アンド・ドロップで移動することは出来ません。一旦プロットを画像ファイルとして出力し、その後に画像編集ソフトを併用して使うことで出来なくも無いですが、後から元のプロットを修正する必要が出ると編集し直すことになるのでめんどうです。
 
 そこで今回はプロットしたグラフの任意の位置をマウスで指定し、そこにラベルを貼る(設定する)方法を紹介します。先に書いたように直接ドラッグ・アンド・ドロップで移動することは出来ないため、今回紹介するのは間接的に行う方法です。ここではラベルの操作のみ扱いますが、座標で位置を指定するパーツなら応用して使える方法だと思います。

 今回の話はQt、Wxt、X11のプロットウィンドウが表示される端末を対象にしたものです。


マウス操作でラベルを貼り付ける

ラベル貼り付けのおさらい

 グラフ上の任意の位置にラベルを貼るには簡単には以下のようにします。
gnuplot> set label "test label" at 3, -2
ここではx, y座標で(3, -2)の位置にラベルを設定しています。
簡単なラベルの貼付け
  ラベル位置の調整は、目視で当たりを付けて座標値を設定し、トライアンドエラーで微調整していきます。実際、これだと少々手間がかかります。

ラベル任意位置に貼り付ける方法

 では、ラベルを任意位置に貼り付ける方法の説明を行って行きます。gnuplotでは直接マウス操作でラベルを貼り付けたり移動したりは出来ないため、それを次に示す手順でそれを行っていきます。
  1. ラベルを貼りたい、移動させたい位置にマウスカーソルを移動
  2. マウスカーソルで指し示した位置の座標をダブルクリックで取得
  3. 取得した座標をラベルの座標値に設定
  4. 再度プロットして設定を反映

    マウスのダブルクリックによる座標の取得

     今回の話の肝は任意位置の取得になるわけですが(取得さえ出来れば後は座標設定のことろにペーストすればいい)、その話は以前の記事で紹介しています。
     話としてはあまり解説することはなく、ラベルを貼りたい位置にマウスカーソルを持っていってそこでダブルクリックすればそこの座標がクリップボードに取得されます。

    取得した座標をラベルの座標値に設定、再度プロット

    次にラベル設定の"at"で示した座標値をそれで置き換えればいいわけです。
    例えば、次のようになるわけです。
    set label "test label" at -6.19228,  4.53208
    ダブルクリックで取得した座標にラベル設定

    x, y座標以外の位置取得

      設定を変更すればx, y座標以外に"graph"の座標の取得が出来ます。詳しくはドキュメントの
    • Mouseformat
    について調べてみて下さい。

    まとめ

     今回紹介した方法では比較的簡単にラベルを貼る位置を調整出来ると思います。貼りたい位置に目視で当たりを付けたり、その座標を覚えておく必要がなく、マウスのダブルクリックで済むわけなので。
     xやyの範囲を変更すればまた調整し直す必要も出て来ますが、それでも覚えておけば役に立つ方法になるでしょう。


    gnuplot関連のブログ記事

    コメント

    スポンサーリンク


    このブログの人気の投稿

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

    catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

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

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

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