如何使点击通过引入tkinter的button,得到之前通过matploylib画好的图
时间: 2024-04-30 11:19:42 浏览: 36
Python Tkinter 绘图项目
您可以通过在tkinter中创建一个Canvas对象,并在其中插入一个图像来实现这一点。以下是一些示例代码:
```python
import tkinter as tk
from PIL import ImageTk, Image
import matplotlib.pyplot as plt
# 创建一个matplotlib图像
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])
# 将matplotlib图像转换为PIL图像
fig.canvas.draw()
pil_image = Image.frombytes('RGB', fig.canvas.get_width_height(), fig.canvas.tostring_rgb())
# 创建一个tkinter窗口并在其中插入图像
root = tk.Tk()
canvas = tk.Canvas(root, width=pil_image.width, height=pil_image.height)
canvas.pack()
img = ImageTk.PhotoImage(image=pil_image)
canvas.create_image(0, 0, anchor=tk.NW, image=img)
# 创建一个按钮,当点击时显示图像
def show_image():
canvas.delete("all")
canvas.create_image(0, 0, anchor=tk.NW, image=img)
button = tk.Button(root, text="Show Image", command=show_image)
button.pack()
root.mainloop()
```
这段代码首先创建了一个matplotlib图像,然后将其转换为PIL图像。接下来,创建了一个tkinter窗口,并在其中插入了图像。最后,创建了一个按钮,当点击时显示图像。
阅读全文