python打开figure对象_python - 使用tkinter - 如果存在或类似,如何清除FigureCanvasTkAgg对象? - 堆栈内存溢出...

尝试创建一个基于tkinter的窗口,允许用户在按钮单击时创建图表,刷新图表 - 每次都不添加另一个图表。 所有这些都没有创建新窗口。 想法是点击 - >创建图表,再次点击 - >在同一地点用新图表替换图表。 没有额外的点击,没有额外的按钮关闭。 使用matplotlib.backends.backend_tkagg和FigureCanvasTkAgg。 文档似乎几乎不存在。 尝试.get_tk_widget()中的各种属性,看看我是否可以测试它是否已存在,获取列表等。还尝试清除画布。

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

from matplotlib.figure import Figure

from tkinter import *

class testme:

def __init__(self,frame1):

self.frame1=frame1

self.button=Button(self.frame1,text="DRAWME",command=self.plot)

self.button1=Button(self.frame1,text="CLEARME",command=self.clearme)

self.button.pack()

self.button1.pack()

def plot(self):

f=Figure(figsize=(5,1))

aplt=f.add_subplot(111)

aplt.plot([1,2,3,4])

self.wierdobject = FigureCanvasTkAgg(f, master=self.frame1)

self.wierdobject.get_tk_widget().pack()

self.wierdobject.draw()

def clearme(self):

self.wierdobject.get_tk_widget().pack_forget()

root=Tk()

aframe=Frame(root)

testme(aframe)

aframe.pack() #packs a frame which given testme packs frame 1 in testme

root.mainloop()

附加的示例代码几乎接近我的目标,但它需要一个“CLEARME”按钮(只有“DRAWME”只被点击一次才能正常工作。我只想要某种if语句检查框架中是否有一个FigureCanvasTkAgg对象如果是这样,请删除它而不是单击按钮。

经过多次尝试,我得出结论,我对这里发生的不止一件事情有一个根本的误解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值