[matplotlib] 37. widgets.Sliderによる円の半径と位置の調整

matplotlib

はじめに

matplotlibではインタラクティブにパラメータを調整できる機能がある。ここでは、その機能の一つであるwidgets.Sliderにより、円の径と位置を調整できるグラフを出力する方法について説明する。

コード

解説

モジュールのインポート

グラフの初期設定

plt.subplots_adjust(left=0.25, bottom=0.25)により、下と左の間隔を0.25あけて、スライダーを表示する領域を確保している。

データの生成とプロット

円を媒介変数でプロットする。初期の半径は2, 中心は(x, y) = (0, 0)として、l, = plt.plot(x, y, lw=2)とすることで円をプロットする。

スライダーの設定

スライダーの設置

グラフの下の方に三段のスライダーを設置する。

スライダーの調整

sli_y = Slider(ax_y, ‘y center’, -10, 10, valinit=y0,valstep=delta)では、ax_yがスライダーを設置するところで、’y center’はスライダーのラベル、-10と10はスライダーの選択可能な範囲で、valintはスライダーの初期値、valstepはスライダーの値の変更する際のステップ値となる。

スライダーの有効化

sli_r.valなどで、スライダーでセットした値を取得し、円をプロットしたlにset_xdata, set_ydataとすることでデータを設定する。fig.canvas.draw_idle()により、円を再描写し、静止状態としている。

設定したスライダーをon_changed(update)で有効にする。

リセットボタンの設定

ボタンをおすことでスライダーがリセットされ初期状態に戻る。

スライダーを動かした場合

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

Slider Demo — Matplotlib 3.1.2 documentation
matplotlib.widgets — Matplotlib 3.1.2 documentation

コメント