Python 3.9 on Mac running OS 11.6.1. My application involves placing a plot on a frame inside my root window, and I'm struggling to get the plot to take up a larger portion of the window. I thought rcParams in matplotlib.pyplot would take care of this, but I must be overlooking something.
Here's what I have so far:
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()
For my actual application, I need for canvas to have a frame as its parent and not simply root, which is why canvas_frame is introduced above.

fill="both"when callingcanvas_frame.pack?bg="red". To test this yourself, just addcanvas.get_tk_widget().config(bg="red")right before you callroot.mainloop(). Then, unmaximize the window and drag one of the sides quickly back and forth. If your computer is slow enough (like mine), you should be able to see flickers of red filling the window.