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和y的值
    x_vals = range(-10, 11)
    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()
    
    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 = float(self.entry1.get())
    b = float(self.entry2.get())
    c = float(self.entry3.get())

    # 计算x和y的值
    x_vals = range(-10, 11)
    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()
    
    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):
    k = float(self.entry1.get())

    # 计算x和y的值
    x_vals = range(-10, 11)
    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)

    # 绘制x轴和y轴
    ax.axhline(y=0, color='black')
    ax.axvline(x=0, color='black')

    # 刷新画布
    self.canvas.draw()

def ychs(): ret01 = Tk() fun = Ychs(ret01)

def echs(): ret02 = Tk() fun = Echs(ret02)

def fblhs(): ret03 = Tk() fun = Fblhs(ret03)

root = Tk() root.geometry("400x200+300+200") root.title("函数图像绘制")

lab01 = Label(root, text="请选择需要绘制图像的函数种类:") lab01.pack()

btn01 = Button(root, text="一次函数", command=ychs) btn01.pack()

btn02 = Button(root, text="二次函数", command=echs) btn02.pack()

btn03 = Button(root, text="反比例函数", command=fblhs) btn03.pack()

btnquit = Button(root, text="退出", command=quit) btnquit.pack()

root.mainloop(

帮我给下面这段代码添加中文注释请不要修改代码from tkinter import from tkinter import messageboximport matplotlibpyplot as pltfrom matplotlibbackendsbackend_tkagg import FigureCanvasTkAggimport mathclass Ychs def __init__

原文地址: https://www.cveoy.top/t/topic/fa7Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录