在tkinter中绘制直方图并显示在指定位置
时间: 2024-02-28 11:57:22 浏览: 146
可以使用matplotlib库来绘制直方图,并将其嵌入到tkinter的窗口中显示。以下是一个简单的示例代码:
```python
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import numpy as np
# 创建tkinter窗口
root = tk.Tk()
root.title("Histogram")
root.geometry("500x500")
# 创建matplotlib的Figure对象
fig = Figure(figsize=(5, 4), dpi=100)
# 生成随机数据
data = np.random.randn(1000)
# 绘制直方图
ax = fig.add_subplot(111)
ax.hist(data, bins=30)
# 将Figure对象嵌入到tkinter窗口中
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的Figure对象。然后,我们生成了一些随机数据,并使用matplotlib的hist()方法绘制了直方图。最后,我们将Figure对象嵌入到tkinter窗口中,并运行tkinter窗口的主循环。
如果你想将直方图显示在窗口的指定位置,可以使用pack()方法的side参数和padx、pady参数来指定。例如,如果你希望直方图显示在窗口的中央,可以使用以下代码:
```python
canvas.get_tk_widget().pack(side=tk.TOP, padx=50, pady=50)
```
其中,padx和pady参数可以用来指定直方图与窗口边缘的距离。
阅读全文