Python tkinter maplotlib动态
时间: 2023-11-05 09:12:27 浏览: 127
Python tkinter
绘图
要在Python中使用Tkinter和Matplotlib绘制动态图形,需要进行以下步骤:
1. 导入所需的库
```python
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
```
2. 创建Tkinter窗口和Matplotlib图形
```python
root = tk.Tk()
root.title("动态图形演示")
fig = Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(111)
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
```
3. 创建一个更新绘图的函数
```python
def update_plot():
x = [1, 2, 3, 4, 5]
y = [i**2 for i in x]
ax.clear()
ax.plot(x, y)
canvas.draw()
```
这个函数生成一个x和y列表,并使用它们在图形上绘制一条曲线。然后,它使用ax.clear()命令清除以前的图形,并使用canvas.draw()命令将绘图更新到Tkinter窗口中。
4. 创建一个Tkinter按钮,用于触发更新绘图的函数
```python
button = tk.Button(master=root, text="更新曲线", command=update_plot)
button.pack(side=tk.BOTTOM)
```
5. 运行应用程序的主事件循环
```python
tk.mainloop()
```
完整的Python代码如下所示:
```python
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
root = tk.Tk()
root.title("动态图形演示")
fig = Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(111)
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
def update_plot():
x = [1, 2, 3, 4, 5]
y = [i**2 for i in x]
ax.clear()
ax.plot(x, y)
canvas.draw()
button = tk.Button(master=root, text="更新曲线", command=update_plot)
button.pack(side=tk.BOTTOM)
tk.mainloop()
```
当您运行这个程序时,您将看到一个包含一个绘图的Tkinter窗口。当您点击“更新曲线”按钮时,曲线将被更新,并且图形将被重新绘制。
阅读全文