我用绘图按钮创建了一个Ipython小部件。每次用户单击“绘图”按钮时,都会显示一个绘图。现在用户可以多次单击绘图按钮,并且我不想每次都出现新的绘图,因此我使用了clear_output()函数。我的测试代码如下:
import numpy as np
import plotly.graph_objects as go
from IPython.html import widgets
from IPython.display import display,clear_output
import numpy as np
def click(b):
clear_output()
x = np.arange(10)
fig = go.Figure(data=go.Scatter(x=x,y=x**2))
fig.show()
display(graphToggler)
display(vbox)
print("Plotting graph")
graphToggler = widgets.ToggleButtons(options=['Table','BarChart'],description='Charts:',disabled=False,button_style='')
display(graphToggler)
out=widgets.Output()
button=widgets.Button(description='Plot')
vbox=widgets.VBox(children=(out,button))
display(vbox)
button.on_click(click)
现在问题在于clear_output()清除了整个单元输出。这意味着如果我已经从代码中在单元格上打印了一些消息(例如本例中的消息:“绘图”)。这也会清楚。同样,它将清除我的小部件,因此我必须在我的点击功能中再次调用小部件上的显示。我真正想要的只是清除情节。其他一切都保持原样。有办法吗?