当单击PySimpleGUI的新单选按钮时,如何清除Matplotlib子图画布图形



我有一个带有多个单选按钮的GUI。每次我更改按钮时,我都想创建一个新的图形,为它创建一个函数。我的问题是,当我单击另一个单选按钮时,会显示第一个图形和第二个图形。我想清除第一个图形,这样当单击相关按钮时,只有第二个图形显示。请有人帮忙为此创建一个函数?

下面的函数给了我一个错误。


def draw_figure(canvas, figure):
figure_canvas_agg = FigureCanvasTkAgg(figure, canvas)
figure_canvas_agg.draw()
figure_canvas_agg.get_tk_widget().pack(side='top', fill='both', expand=1)
return figure_canvas_agg
def delete_figure_agg(figure_agg):
figure_agg.get_tk_widget().forget()
plt.close('all') 

layout=[          
[sg.Radio('1',key= 'RADIO1',group_id='1', enable_events = True,default=False, size=(10,1)),
sg.Radio('2t', key= 'RADIO2',group_id='1',enable_events = True, default=False, size=(10,1)),
sg.Radio('3', key='RADIO3',group_id='1',enable_events = True, default=False, size=(12,1)),
sg.Radio('4', key='RADIO4', group_id='1',enable_events = True,default=False, size=(12,1))],
[sg.Canvas(key='-CANVAS-',size=(40,40))]]
def subplot_graph(val1, val2,val3, val4):
fig = matplotlib.figure.Figure(figsize=(4, 4), dpi=75)
fig.add_subplot(111).bar(val1, val2,color= 'blue' ,width=0.7)
fig.add_subplot(111).twinx()
fig.add_subplot(111).plot(val1,val3))
return fig

谢谢

Demo_Matplotlib_Browser就是这样做的一个例子。这个演示显示了多个情节,一个接一个,这是你检查代码是如何完成的线索。

演示中使用的技术是这样的功能:

def delete_figure_agg(figure_agg):
figure_agg.get_tk_widget().forget()
plt.close('all')

最新更新