【发布时间】:2021-08-08 02:38:38
【问题描述】:
我只是在寻找某种工作示例,它可以让我拥有一个滑块和一个正弦波图,从而我可以在 Jupyter Notebook 中改变频率。我用谷歌搜索的所有在线演示都不适合我。问题似乎是旧的 matplotlib 图在创建新图之前没有被删除。
这是我的最小示例
import ipywidgets as widgets
from IPython.display import display, clear_output
import matplotlib.pyplot as plt
import numpy as np
def f(a):
clear_output(wait=True)
fig, ax = plt.subplots()
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(a*x)
ax.grid()
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.plot(x,y)
ax.set_title("y = sin(x)")
%matplotlib inline
from time import sleep
for i in range(1,10):
clear_output(wait=True)
f(i)
sleep(1)
我也试过
out = widgets.Output(layout={'border': '1px solid black'})
with out:
widgets.interact(f, a=1)
out.clear_output()
display(out)
但是,我尝试的任何方法都不会删除之前的 matplotlib 图。它们只是堆积在彼此之上。我承认我在挣扎,因为我不太了解 API,而且文档中的示例对我不起作用。
我不希望人们修复我的代码,因为它可能是垃圾。我只是在寻找一个工作示例,它可以让我以交互方式控制频率并在 Jupyter 笔记本上重绘正弦波。
【问题讨论】:
标签: matplotlib jupyter-notebook ipywidgets