You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter中向预留Canvas空间添加Matplotlib绘图时界面尺寸异常的问题求助

Tkinter中向预留Canvas空间添加Matplotlib绘图时界面尺寸异常的问题求助

我做了一个GUI,里面有个空的tk.Canvas组件,想在运行时把matplotlib的绘图放进去。但添加绘图的时候,它会强制GUI采用绘图的尺寸,而不是使用我预留的Canvas空间,导致界面里的元素都移位了。有没有办法让绘图创建时就和Canvas的尺寸保持一致呢?

最小可复现示例(MWE):

import matplotlib as mpl
mpl.use('TkAgg')

import tkinter as tk
from matplotlib import figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

root = tk.Tk()

def show_plot():
    fig = figure.Figure()
    ax=fig.add_subplot()
    ax.scatter([1, 2, 3, 4], [4, 7, 2, 4])
    canv = FigureCanvasTkAgg(fig, canvas)
    canv.draw()
    canv.get_tk_widget().pack(fill=tk.BOTH, expand=1)

canvas = tk.Canvas(root, width=600, height=600)
canvas.pack(fill=tk.NONE, expand=0)
tk.Button(root, text='show plot', command=show_plot).pack()

root.mainloop()

我已经尝试过修改绘图和Canvas的.pack()方法里的fill和expand参数,但没起到作用。

备注:内容来源于stack exchange,提问作者Xoriun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:03:08