Matplotlib は、Python および NumPy のためのグラフ描画ライブラリです。Qt for Python (PySide) などと組み合わせて GUI アプリを作成するのに重宝しています。プロットを静的に描画するだけでも十分有用です。しかし、時にはプロット上のデータ集団をマウスでドラッグして抽出するちょっとインタラクティブな用途にも使いたいことがあり、調べてそういう使い方もしていたのですが [1]、使い方についてはいまひとつ理解ができていない部分がありました。
Matplotlib 3.5.0 のリリースでようやく PySide6/PyQt6 でも利用できるようになったので、この機にあらためて試行錯誤を重ね、理解しやすい記述に書き直しました。
本記事では、下記の OS 環境を使用しています。
Fedora 35 Workstation | x86_64 | |
Python | 3.10.0 | |
PySide6 | 6.2.1 | |
matplotlib | 3.5.0 |
以下にサンプルの実行例を示します。
qt_matplotlib_scatter.py の実行例
(0.39, 0.32) --> (0.81, 0.83)
サンプルコードを下記に示しました。
qt_matplotlib_scatter.py
ちなみに RectangleSelector を EllipseSelector に変更すると、マウスでドラッグする矩形範囲が楕円に変わります。
plt.RS = EllipseSelector(
ax, self.select_callback, useblit=True,
button=[1], # disable middle & right buttons
...
...
qt_matplotlib_scatter.py の実行例 (2)
(0.45, 0.39) --> (0.92, 0.84)
参考サイト
- Rectangle and ellipse selectors — Matplotlib 3.5.0 documentation
- Matplotlib documentation — Matplotlib 3.5.0 documentation
にほんブログ村
0 件のコメント:
コメントを投稿