MATLABで自動的にfigureを重ならないように並べる
MATLABで、figureが互いに重ならないように並べるgridfigureというコマンドを作りました。
gridfigure - File Exchange - MATLAB Central
MATLABのfigureには'defaultfigurecreatefcn'という隠されたプロパティがあり、これを変えることでfigureウインドウ作成時に任意の関数を実行することができます。
関数はそのfigureが初めて作成された時に一度だけ呼ばれ、以降figure(1)などでフォーカスを当てても呼ばれません。
他のfigureウィンドウを作ったり、figureを一度閉じた後にもう一度開いた時も呼ばれます。
この機能を使い、ここにfigureをグリッド状に並べる関数を登録しておくことで、何もコマンドを入力しなくてもfigureが勝手にグリッド状に並ぶようになります。
複数のfigureを出して見比べたい時にかなり重宝すると思います。
更に、手動でfigureを並べ替えられるgridfigureというコマンドを作り、
- マルチディスプレイ対応(サブディスプレイに表示する順番を選べる→メインディスプレイで作業しながら、サブディスプレイにfigureを描画可能)
- ウィンドウサイズを指定可能
- 並べ方を指定可能(左から右、上から下)
という機能を付けました。
更に、一度gridfigureでウィンドウサイズなどを指定しておくと、以降出てくるfigureのサイズがすべて指定のサイズになります。
過去にも手動でfigureを並べるコマンドはあったのですが、defaultfigurecreatefcnを使って自動でfigureを並べるパッケージは無かったので、その点はかなり便利になっていると思います。