IPython (python3) でMatplotlibとipywidgetsを使用してインタラクティブなプロットを実装したいと考えています。では、これを効率的に行うにはどうすればよいでしょうか (遅滞なくスムーズに変更できますか?)。
もう 1 つの質問は、なぜこのコードが機能するのかということです。
from ipywidgets import *
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0, 2 * np.pi)
def update(w = 1.0):
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(x, np.sin(w * x))
fig.canvas.draw()
interact(update);
しかし、これはうまくいきませんか?
from ipywidgets import *
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0, 2 * np.pi)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
line, = ax.plot(x, np.sin(x))
def update(w = 1.0):
line.set_ydata(np.sin(w * x))
fig.canvas.draw()
interact(update);