用Python创建一个带有用户可输入参数的生成sin和cos图像的界面
时间: 2024-11-20 16:35:19 浏览: 10
用python写一个带有gui界面的密码生成器
在Python中,我们可以使用Tkinter库来创建图形用户界面(GUI),并结合matplotlib库绘制sin和cos图像。以下是一个简单的示例,演示如何创建这样一个界面,允许用户输入周期(T)和振幅(A)等参数:
```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.title("Sin/Cos Graph Creator")
self.geometry('600x400')
# 创建画布
fig, ax = plt.subplots()
canvas = FigureCanvasTkAgg(fig, master=self)
canvas.get_tk_widget().grid(row=0, column=0, columnspan=2)
# 定义输入框和按钮
self.A_entry = tk.Entry(master=self)
self.A_entry.grid(row=1, column=0)
self.T_entry = tk.Entry(master=self)
self.T_entry.grid(row=2, column=0)
self.plot_button = tk.Button(master=self, text="Plot", command=self.plot_graph)
self.plot_button.grid(row=3, column=0)
# 函数:获取用户输入并绘制图像
def plot_graph():
A = float(self.A_entry.get())
T = float(self.T_entry.get())
x = np.linspace(0, 2 * np.pi, 1000) # 生成x轴数据
y_sin = A * np.sin(x / T) # sin函数
y_cos = A * np.cos(x / T) # cos函数
ax.clear() # 清空之前的图
ax.plot(x, y_sin, label='Sine', color='blue')
ax.plot(x, y_cos, label='Cosine', color='red')
ax.legend()
ax.set_xlabel('X-axis')
ax.set_ylabel('Amplitude')
ax.set_title(f'Sin/Cos Wave with A={A} and T={T}')
# 将canvas连接到figure
canvas.draw()
if __name__ == "__main__":
app = App()
app.mainloop()
阅读全文