gpt4 book ai didi

python - 使用 matplotlib 在 FigureCanvasTkAgg 中进行 blit

转载 作者:行者123 更新时间:2023-11-28 17:46:29 27 4
gpt4 key购买 nike

我正在尝试使用 matplotlib 的 TkAgg 后端进行一些实时绘图。 Here ,可以看到FigureCanvasTkAgg类自动实现了canvas.copy_from_bbox(ax.bbox)canvas.restore_region(background),即使用 blit() 的先决条件,可以找到其方法文档 here .

因此,我尝试了下面的代码(灵感来源 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'
>>>

最佳答案

我解决了错误,这是由于在初始 show() 事件之前调用了 blit()。只需将两条线反转,错误就会消失。

关于python - 使用 matplotlib 在 FigureCanvasTkAgg 中进行 blit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com