我正在尝试在Jupyter中创建一个交互式绘图,并且它在某种程度上解决了一个问题,即每次按下按钮生成绘图时,都会附加一个新绘图而不是当前替换的绘图。关于如何解决这个问题的任何想法?
field_ddl = widgets.Dropdown(
options=['race', 'gender', 'grade'],
value='race',
description='field:',
disabled=False,
button_style='info'
)
graph_btn = widgets.Button(
description='graph',
disabled=False,
button_style='success',
tooltip='distribution plot',
icon='check'
)
def graph_btn_clicked(e):
field = field_ddl.value
df[field].value_counts().plot(kind='bar', title=field)
graph_btn.on_click(graph_btn_clicked)
display(field_ddl)
display(graph_btn)
我已经查找了interact功能,但这似乎没什么帮助。在初始化时,会生成一个图表,但是当我选择另一个字段并再次点击该按钮时,没有任何反应。
interact(graph_btn_clicked, x=graph_btn)
答案 0 :(得分:3)
您可以使用交互式后端
%matplotlib notebook
然后创建一个图形和一个要绘制的轴,
fig, ax = plt.subplots()
然后每次单击该按钮时,清除旧图并将新图绘制到相同的轴。
def graph_btn_clicked(e):
field = field_ddl.value
ax.clear()
df[field].value_counts().plot(kind='bar', title=field, ax=ax)