我想在 Tkinter 窗口中显示很多子图,并且能够向下滚动以查看所有大小合适的图。但是,它全部打包,并且子图似乎并没有占用我图中允许的所有空间,而仅限制在窗口的空间内。我怎样才能让它更间隔开并使子图更大?
我已经尝试使用该tight_layout()选项进行不同的填充,更改了 Tkinter 的图形大小和其他参数,例如我的小部件中的fill或expand。
import tkinter as tk
from tkinter import Scrollbar
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import matplotlib.pyplot as plt
class ScrollableWindow:
def __init__(self, master, fig, **options):
master.geometry("%dx%d+0+0" % (800, 500))
master.focus_set()
fig_wrapper = tk.Frame(master, width=800, height=fig.get_figheight())
fig_wrapper.pack(fill=tk.BOTH, expand=True)
fig_canvas = FigureCanvasTkAgg(fig, master=fig_wrapper)
scrollbar = Scrollbar(fig_wrapper, orient=tk.VERTICAL, command=fig_canvas.get_tk_widget().yview)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
fig_canvas.get_tk_widget().pack(fill=tk.BOTH, side=tk.LEFT, expand=True)
fig_canvas.get_tk_widget().config(yscrollcommand = scrollbar.set, scrollregion=fig_canvas.get_tk_widget().bbox("all"), width=800, height=1000)
n_col, n_row = 3, 11
fig, axes = plt.subplots(figsize=(n_col,n_row*2), ncols=n_col, nrows=n_row)
for i …Run Code Online (Sandbox Code Playgroud)