可以实现在同一个窗口中显示两个独立的图形。
FigureCanvasTkAgg是Matplotlib库中的一个类,用于在Tkinter应用程序中显示Matplotlib图形。它可以将Matplotlib图形渲染为Tkinter窗口中的画布。
要在一个窗口中使用两个FigureCanvasTkAgg,可以按照以下步骤进行操作:
import tkinter as tk
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
window = tk.Tk()
window.title("Two FigureCanvasTkAgg Example")
figure1 = Figure(figsize=(5, 4), dpi=100)
figure2 = Figure(figsize=(5, 4), dpi=100)
canvas1 = FigureCanvasTkAgg(figure1, master=window)
canvas2 = FigureCanvasTkAgg(figure2, master=window)
canvas1.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
canvas2.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
# 在figure1中添加图形
ax1 = figure1.add_subplot(111)
ax1.plot([1, 2, 3, 4], [1, 4, 9, 16])
# 在figure2中添加图形
ax2 = figure2.add_subplot(111)
ax2.bar(['A', 'B', 'C'], [3, 7, 2])
canvas1.draw()
canvas2.draw()
完整的代码示例:
import tkinter as tk
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
window = tk.Tk()
window.title("Two FigureCanvasTkAgg Example")
figure1 = Figure(figsize=(5, 4), dpi=100)
figure2 = Figure(figsize=(5, 4), dpi=100)
canvas1 = FigureCanvasTkAgg(figure1, master=window)
canvas2 = FigureCanvasTkAgg(figure2, master=window)
canvas1.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
canvas2.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
ax1 = figure1.add_subplot(111)
ax1.plot([1, 2, 3, 4], [1, 4, 9, 16])
ax2 = figure2.add_subplot(111)
ax2.bar(['A', 'B', 'C'], [3, 7, 2])
canvas1.draw()
canvas2.draw()
window.mainloop()
这样就可以在同一个窗口中使用两个FigureCanvasTkAgg显示两个独立的图形了。
API网关系列直播
腾讯技术开放日
腾讯技术开放日
高校公开课
云+社区沙龙online [云原生技术实践]
云+社区沙龙online第5期[架构演进]
小程序·云开发官方直播课(数据库方向)
云+社区沙龙online第5期[架构演进]
领取专属 10元无门槛券
手把手带您无忧上云