单击新单选按钮 PySimpleGUI 时如何清除 Matplotlib 子图 canvas 图?
How to clear a Matplotlib subplot canvas figure when a new radio button is clicked PySimpleGUI?
我有一个带有多个单选按钮的 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')
我有一个带有多个单选按钮的 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')