python - 在图形画布上嵌入数据框图?
问题描述
尽管https://matplotlib.org/3.1.0/gallery/user_interfaces/embedding_in_tk_sgskip.html上有大量的 matplotlib 文档, 但我仍在为在 tkinter GUI 中的图形画布上嵌入数据框图的简单任务而苦苦挣扎。
我已经加载了所有相关的包并在名为“root”的 tkinter 主窗口中创建了名为“df”的数据框。
问题可能源于对数字如何工作的理解不足,归结为以下代码行
fig=df.plot()
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=TOP)
我收到的错误消息指出,“AttributeError:'AxesSubplot' 对象没有属性 'set_canvas'”
解决方案
TheLizzard 的评论是正确的,df.plot()
不返回 amatplotlib.figure.Figure
而是 a matplotlib.axes.AxesSubplot
并且fig
应该是 a Figure
。
但是,df.plot()
可以AxesSubplot
在参数(ax
选项)中使用 matplotlib。所以你可以在图中创建子图,然后在子图中绘制你DataFrame
的:
fig = Figure(figsize=(5, 4), dpi=100) # create the figure
ax = fig.add_subplot(111) # create the subplot
df.plot(ax=ax) # plot df in ax
canvas = FigureCanvasTkAgg(fig, master=root) # A tk.DrawingArea.
canvas.draw()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)
推荐阅读
- go - Go 应用程序未检测到 .env 并且不会连接到 db
- azure - 将 BlobStorage 升级到通用 v2 存储的影响
- python - 提取从根到令牌的依赖关系路径?斯帕西
- javascript - Vue 3 - 图像相对路径语法(内部方法)
- c# - 如何使用 Entity Framework Core 在不同的表中多次添加对象 [跟踪错误]
- java - 在选项卡之间发送信息(EditText 到 TextView)
- c++ - C ++如何将网格对象转换为fbx文件
- google-apps-script - 使用脚本编辑器从谷歌表格创建 PDF 时,图像未完全上传(仅 80%)
- html - HTML文件不想与css链接不是因为文件位置错误
- java - 在addOnSuccessListener(android应用程序)之外的java中获取文件上传成功或失败