3
我想用matlablotlib的TkAgg后端进行一点实时绘图。 Here,可以看出FigureCanvasTkAgg
类自动实现了canvas.copy_from_bbox(ax.bbox)
和canvas.restore_region(background)
,这是使用blit()
的先决条件,可以找到方法文档here。blit in FigureCanvasTkAgg with matplotlib
因此,我想下面的代码(灵感here源):
#calibration graph
calib_frame = tk.LabelFrame(r_cont, text='probe angle calibration', padx=5, pady=5)
calib_frame.grid(column=0, row=0, sticky='ns')
fig = Figure(figsize=(2,2))
calib_plot = fig.add_subplot(111)
axis = np.arange(0,100)
s = np.sin(2*math.pi*axis) #static data for debugging
calib_plot.plot(axis, s)
calib_canvas = FigureCanvasTkAgg(fig, master=calib_frame)
calib_canvas.blit()
calib_canvas.show()
calib_canvas.get_tk_widget().grid(column=0, row=0)
不工作,因为calib_canvas.blit()
方法不正确执行(我认为...)。我明白blit()
是做什么的,我想blit()
坐标轴的边框,但我不明白如何实现它,我读的参考没有帮助。有人可以帮助我正确实施吗?
错误,我从上面的代码获得:
>>>
Traceback (most recent call last):
File "C:\Python27\try.py", line 450, in <module>
calib_canvas.blit(bbox=None)
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 353, in blit
tkagg.blit(self._tkphoto, self.renderer._renderer, bbox=bbox, colormode=2)
AttributeError: 'FigureCanvasTkAgg' object has no attribute 'renderer'
>>>