我正在尝试生成一个依赖小部件的交互式图。我的问题是,当我使用滑块更改参数时,在前一个绘图之后进行了新绘图,相反,我期望仅一个绘图会根据参数进行更改。
例:
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
def plot_func(freq):
x = np.linspace(0, 2*np.pi)
y = np.sin(x * freq)
plt.plot(x, y)
interact(plot_func, freq = widgets.FloatSlider(value=7.5,
min=1,
max=5.0,
step=0.5))
将滑块移动到4.0后,我有:
而我只想在移动滑块时改变一个数字。我该如何实现?
(我正在使用Python 2.7,matplotlib 2.0,并且我刚刚将Notebook和jupyter更新为最新版本。如果需要更多信息,请告诉我。)
当您要更改图形时,而不是创建一个新图形,我可以建议以下方法:
%matplotlib notebook
所以代码看起来像这样:
%matplotlib notebook
from ipywidgets import *
import numpy as np
import matplotlib.pyplot as plt
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_idle()
interact(update);
或者,您可以plt.show()
在此答案中使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句