[英]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')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.