在运行OS 11.6.1的Mac上使用Python 3.9。我的应用程序涉及在根窗口内的帧上放置一个图表,我正在努力使图表占据窗口的较大部分。我认为matplotlib.pyplot
中的rcParams
会处理这个问题,但我一定是忽略了什么。
以下是我目前的进展:
import numpy as np
from tkinter import Tk,Frame,TOP,BOTH
import matplotlib
from matplotlib import pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
plt.rcParams["figure.figsize"] = [18,10]
root=Tk()
root.wm_title("Root Window")
root.geometry('1500x1000')
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)
fig, ax = plt.subplots()
ax.plot(x, y)
canvas_frame=Frame(root) # also tried adjusting size of frame but that didn't help
canvas_frame.pack(side=TOP,expand=True)
canvas = FigureCanvasTkAgg(fig, master=canvas_frame)
canvas.draw()
canvas.get_tk_widget().pack(side=TOP,fill=BOTH,expand=True)
root.mainloop()
对于我的实际应用,我需要canvas
具有一个框架作为其父级而不是简单的root
,这就是为什么引入canvas_frame
的原因。
bg="red"
。要自行测试,请在调用root.mainloop()
之前添加canvas.get_tk_widget().config(bg="red")
。然后,取消最大化窗口并快速来回拖动其中一侧。如果您的计算机足够慢(像我的),您应该能够看到红色闪烁填充窗口。 - Sylvester Kruin