ipywidgetsを使うとJupyter上でインタラクティブにパラメータを変えた結果を表示できます。
で確認しています。Jupyterや周辺モジュールは結構大胆にモジュール構成や記述方法を変えるので、バージョンに注意してください。
まず初期設定。
from ipywidgets import interact
from matplotlib import pyplot as plt
import numpy as np
%matplotlib inline
まず関数を定義します。
t=np.linspace(0,10,1000)
def f(x=0.0):
y=np.sin(t*x)
plt.ylim(-1,1)
plt.plot(t,y)
interact()で関数と、インタラクティブ引数を指定します。min, max, step で指定します。
デフォルトはスライドバーになります。
interact(f, x=(0.0,2.0,0.01));
ドロップダウン選択もできます。この例ではテキストを与えています。
戻り値の"_"を受け取っているのは、interact()の戻り値をJupyterが表示してしまうのを防ぐためです。
def ft(text=""):
print text
_=interact(ft,text=["a","b","c"])
a
テキストボックスもできます。一文字変更するたびに関数が呼ばれますので少々うざいです。
_=interact(ft,text="a")
a
スライドバー、ドロップダウン、テキストボックス、以外はipywidgetsクラスにいろいろと定義されています。
以上3つはよく使うので少ないコードで使えるように工夫されているようですね。
import ipywidgets as widget
def fc(check=False):
print check
_=interact(fc,check=widget.Checkbox())
False
_=interact(ft,text=widget.RadioButtons(options=["a","b","c"]))
a
_=interact(ft,text=widget.ToggleButtons(options=["a","b","c"]))
a