AttributeError: 'AxesSubplot' object has no attribute 'get_tk_widget'
时间: 2023-09-26 08:11:45 浏览: 76
mdk_armcc_user_guide.pdf
这个错误通常是因为在使用 Matplotlib 绘图时,尝试将一个 AxesSubplot 对象转换为 Tkinter 的 widget 对象。但是 AxesSubplot 对象没有 get_tk_widget() 方法,因此会出现此错误。
解决方法是使用 FigureCanvasTkAgg 类来创建一个 Canvas 对象,并将 AxesSubplot 对象绘制到 Canvas 上。这样就可以将 Canvas 对象传递给 Tkinter 的窗口,而不是尝试将 AxesSubplot 对象传递给窗口。
以下是一个示例代码:
``` python
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import matplotlib.pyplot as plt
# 创建 Tkinter 窗口
root = tk.Tk()
root.title("Matplotlib with Tkinter")
# 创建 Matplotlib 图形
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])
# 将 Matplotlib 图形绘制到 Tkinter Canvas 上
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
# 显示 Canvas
canvas.get_tk_widget().pack()
# 运行 Tkinter 窗口
tk.mainloop()
```
这个代码创建了一个简单的 Matplotlib 图形,并将其绘制到一个 Tkinter Canvas 对象上,然后将 Canvas 显示在窗口中。注意,我们使用了 FigureCanvasTkAgg 类来创建 Canvas 对象,而不是直接使用 AxesSubplot 对象。
阅读全文