使用tk库为此功能提供图形化界面
时间: 2024-09-22 11:09:55 浏览: 77
Tkinter是Python自带的标准图形用户界面库,用于创建基本的GUI应用程序。如果你想在上述二项分布图的基础上添加一个Tk图形界面,你可以这样做:
首先,安装必要的库(如果你还没安装的话):
```bash
pip install matplotlib tk
```
然后,结合Tkinter创建一个简单的窗口,并在其中添加绘图组件:
```python
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import matplotlib.pyplot as plt
import numpy as np
# ... (之前的二项分布绘图代码)
class App(tk.Tk):
def __init__(self):
super().__init__()
self.figure = plt.Figure(figsize=(4, 3), dpi=100)
self.canvas = FigureCanvasTkAgg(self.figure, master=self)
self.canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True)
self.n_entry = tk.Entry(self)
self.n_entry.insert(0, '10') # 初始化试验次数为10
self.n_entry.pack()
self.p_entry = tk.Entry(self)
self.p_entry.insert(0, '0.5') # 初始化成功率为0.5
self.p_entry.pack()
self.update_plot_button = tk.Button(self, text="Update Plot", command=self.update_plot)
self.update_plot_button.pack()
def update_plot(self):
n = int(self.n_entry.get())
p = float(self.p_entry.get())
x = np.arange(0, n+1)
y = stats.binom.pmf(x, n, p)
self.figure.clear()
self.axes = self.figure.add_subplot(111)
self.axes.bar(x, y)
self.canvas.draw_idle()
# 创建应用实例并运行
app = App()
app.mainloop()
阅读全文