質問: matplotlibのguiの拡大ツール(虫眼鏡ボタン)や十字ボタンで時系列データの一部を拡大し、拡大した時系列範囲に対応する範囲の時系列データの最大値/最小値、周波数スペクトルを表示するプログラムを作りたいと考えています。 範囲の指定方法ですが、xlim関数を使うのではなく、guiの拡大ツールや十字ボタンを使いたいです。 拡大された範囲のx軸情報が取得できれば、x軸情報を元に、最大値/最小値、周波数スペクトルを表示するのは簡単に実現できそうですが、肝心のx軸情報を取得する方法が分かりません。どなたか教えて頂けないでしょうか。
回答: 質問のようなプログラムを`matplotlib`だけで作ることはできません。`matplotlib`は、グラフの画像を生成して外部モジュールを使ってプロットしたらそれで終了してしまうので、外部モジュールの情報を取得することはできません。グラフをGUIで操作しようとする場合は、まずどのGUIを使うかを決めて、使用するGUI側から`matplotlib`を呼び出す必要があります。 Webの場合は、`[Bokeh][1]`と`[Plotly][1]`というライブラリーが既にあります。まず、それを使ってみたらいいと思います。 GTK又はQtを使う場合は、それぞれのライブラリーを使ってGUIアプリケーションを作成して、そこから`matplotlib`を操作する必要があります。`matplotlib`は幸いなことにOSSなので、ソースコードを調べれば、どうすればいいかわかると思います。