tkinter 调用 matplotlib

在Python中,我们经常会使用tkinter来创建图形用户界面,而matplotlib则是一个常用的用于绘制数据图表的库。有时候,我们需要在tkinter的窗口中显示matplotlib绘制的图表,本文将详细介绍如何实现这个功能。
1. 安装 matplotlib
首先,确保你已经安装了matplotlib库。如果没有安装,可以使用以下命令通过pip进行安装:
pip install matplotlib
2. 创建 tkinter 窗口
接下来,我们将创建一个tkinter窗口用于显示matplotlib绘制的图表:
import tkinter as tk
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
# 创建 tkinter 窗口
root = tk.Tk()
root.title("matplotlib in tkinter")
# 创建 matplotlib 图表
fig = Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(111)
ax.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
# 创建 FigureCanvasTkAgg 对象
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
# 运行 tkinter 主循环
root.mainloop()
在上面的代码中,我们创建了一个简单的tkinter窗口,并在窗口中显示了一个matplotlib绘制的折线图。
3. 使用 tkinter 菜单控制 matplotlib
除了显示图表,我们还可以在tkinter窗口中添加菜单,通过菜单实现图表的交互操作,比如切换不同类型的图表、调整参数等。
import tkinter as tk
from tkinter import Menu
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
def plot_bar_chart():
ax.clear()
ax.bar([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
canvas.draw()
def plot_pie_chart():
ax.clear()
ax.pie([1, 2, 3, 4, 5], labels=['A', 'B', 'C', 'D', 'E'])
canvas.draw()
# 创建 tkinter 窗口
root = tk.Tk()
root.title("matplotlib in tkinter")
# 创建 matplotlib 图表
fig = Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(111)
ax.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
# 创建 FigureCanvasTkAgg 对象
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
# 创建菜单栏
menu_bar = Menu(root)
root.config(menu=menu_bar)
# 创建“绘制”菜单
plot_menu = Menu(menu_bar, tearoff=0)
plot_menu.add_command(label="Bar Chart", command=plot_bar_chart)
plot_menu.add_command(label="Pie Chart", command=plot_pie_chart)
menu_bar.add_cascade(label="Plot", menu=plot_menu)
# 运行 tkinter 主循环
root.mainloop()
在上面的代码中,我们创建了一个包含两个菜单项的菜单栏,通过点击菜单项可以切换绘制条形图和饼图。这样就实现了在tkinter窗口中控制matplotlib图表的功能。
4. 总结
通过上面的示例代码,我们详细介绍了如何在tkinter窗口中显示matplotlib绘制的图表,并通过菜单实现了图表的交互控制。希最本文能帮助读者更好地了解如何在tkinter中调用matplotlib。
极客笔记