Python Jupyter中的交互式绘图会导致附加后续绘图

Python Jupyter中的交互式绘图会导致附加后续绘图,python,matplotlib,jupyter-notebook,jupyter,ipywidgets,Python,Matplotlib,Jupyter Notebook,Jupyter,Ipywidgets,我试图在Jupyter中创建一个交互式绘图,但它有一个问题,那就是每次我点击按钮生成绘图时,都会追加一个新的绘图,而不是替换当前的绘图。关于如何解决这个问题有什么想法吗 field_ddl = widgets.Dropdown( options=['race', 'gender', 'grade'], value='race', description='field:', disabled=False, button_style='info' ) grap

我试图在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(graph_btn_clicked, x=graph_btn)

您可以使用交互式后端

%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)

我想这和这个问题是一样的:
%matplotlib笔记本
似乎与
%matplotlib内联
冲突。使用这种方法,我是否需要根据需要在两者之间切换?