帮我给下面这段代码添加中文注释from tkinter import from tkinter import messageboximport matplotlibpyplot as pltfrom matplotlibbackendsbackend_tkagg import FigureCanvasTkAggimport mathclass Ychs def __init__self ma
导入所需的模块
from tkinter import * from tkinter import messagebox import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg import math
定义一次函数类
class Ychs: def init(self, master): self.master = master master.title("绘制一次函数")
# 添加标签
self.label0 = Label(master, text="形如 f(x) = ax + b 的函数",font=21)
self.label0.pack()
# 添加斜率和截距的输入标签和输入框
self.label1 = Label(master, text="请输入斜率a的值:")
self.label1.pack()
self.entry1 = Entry(master)
self.entry1.pack()
self.label2 = Label(master, text="请输入截距b的值:")
self.label2.pack()
self.entry2 = Entry(master)
self.entry2.pack()
# 添加绘制按钮
self.plot_button = Button(master, text="绘制", command=self.plot)
self.plot_button.pack()
# 添加画布
self.fig = plt.Figure(figsize=(5, 4), dpi=100)
self.canvas = FigureCanvasTkAgg(self.fig, master=self.master)
self.canvas.get_tk_widget().pack(side=BOTTOM, fill=BOTH, expand=True)
def plot(self):
# 获取输入的斜率和截距的值
slope = float(self.entry1.get())
y_intercept = float(self.entry2.get())
# 设置x轴的范围为-10到10
x_vals = range(-10, 11)
# 根据一次函数公式计算y轴的值
y_vals = [slope*x + y_intercept for x in x_vals]
# 清空原有图像
self.fig.clear()
# 添加子图并绘制图像
ax = self.fig.add_subplot(111)
ax.plot(x_vals, y_vals)
# 刷新画布
self.canvas.draw()
定义二次函数类
class Echs: def init(self, master): self.master = master master.title("绘制二次图像")
# 添加标签
self.label0 = Label(master, text="形如 f(x) = ax^2 + bx + c 的函数", font=21)
self.label0.pack()
# 添加a,b,c的输入标签和输入框
self.label1 = Label(master, text="请输入a的值:")
self.label1.pack()
self.entry1 = Entry(master)
self.entry1.pack()
self.label2 = Label(master, text="请输入b的值:")
self.label2.pack()
self.entry2 = Entry(master)
self.entry2.pack()
self.label3 = Label(master, text="请输入c的值:")
self.label3.pack()
self.entry3 = Entry(master)
self.entry3.pack()
# 添加绘制按钮
self.plot_button = Button(master, text="绘制图像", command=self.plot)
self.plot_button.pack()
# 添加画布
self.fig = plt.Figure(figsize=(5, 4), dpi=100)
self.canvas = FigureCanvasTkAgg(self.fig, master=self.master)
self.canvas.get_tk_widget().pack(side=BOTTOM, fill=BOTH, expand=True)
def plot(self):
# 获取输入的a,b,c的值
a = float(self.entry1.get())
b = float(self.entry2.get())
c = float(self.entry3.get())
# 设置x轴的范围为-10到10
x_vals = range(-10, 11)
# 根据二次函数公式计算y轴的值
y_vals = [a*x**2 + b*x + c for x in x_vals]
# 清空原有图像
self.fig.clear()
# 添加子图并绘制图像
ax = self.fig.add_subplot(111)
ax.plot(x_vals, y_vals)
# 刷新画布
self.canvas.draw()
定义反比例函数类
class Fblhs: def init(self, master): self.master = master master.title("绘制反比例函数图像")
# 添加标签
self.label0 = Label(master, text="形如 f(x) = a/x 的函数", font=21)
self.label0.pack()
# 添加a的输入标签和输入框
self.label1 = Label(master, text="请输入a的值")
self.label1.pack()
self.entry1 = Entry(master)
self.entry1.pack()
# 添加绘制按钮
self.plot_button = Button(master, text="绘制图像", command=self.plot)
self.plot_button.pack()
# 添加画布
self.fig = plt.Figure(figsize=(5, 4), dpi=100)
self.canvas = FigureCanvasTkAgg(self.fig, master=self.master)
self.canvas.get_tk_widget().pack(side=BOTTOM, fill=BOTH, expand=True)
def plot(self):
# 获取输入的a的值
k = float(self.entry1.get())
# 设置x轴的范围为-10到10
x_vals = range(-10, 11)
# 根据反比例函数公式计算y轴的值
y_vals = [k/x if x != 0 else None for x in x_vals]
# 清空原有图像
self.fig.clear()
# 添加子图并绘制图像
ax = self.fig.add_subplot(111)
ax.plot(x_vals, y_vals)
# 添加坐标轴
ax.axhline(y=0, color='black')
ax.axvline(x=0, color='black')
# 刷新画布
self.canvas.draw()
定义函数图像绘制类
class FunctionPlot: def init(self): root = Tk() root.geometry("400x200+300+200") root.title("函数图像绘制")
# 添加选择函数种类的标签和按钮
lab01 = Label(root, text="请选择需要绘制图像的函数种类:")
lab01.pack()
btn01 = Button(root, text="一次函数", command=self.ychs)
btn01.pack()
btn02 = Button(root, text="二次函数", command=self.echs)
btn02.pack()
btn03 = Button(root, text="反比例函数", command=self.fblhs)
btn03.pack()
# 添加退出按钮
btnquit = Button(root, text="退出", command=quit)
btnquit.pack()
root.mainloop()
# 创建一次函数对象
def ychs(self):
ret01 = Tk()
fun = Ychs(ret01)
# 创建二次函数对象
def echs(self):
ret02 = Tk()
fun = Echs(ret02)
# 创建反比例函数对象
def fblhs(self):
ret03 = Tk()
fun = Fblhs(ret03)
创建函数图像绘制对象
FunctionPlot(
原文地址: https://www.cveoy.top/t/topic/fa7g 著作权归作者所有。请勿转载和采集!