При запуске своей функции появляется ошибка, как с этим бороться(
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
from tkinter import *
from tkinter import ttk
window = Tk() #создаем окно
window.title("графики :3") # заголовок окна
window.geometry("720x1000+600+60") #размер и отступ
window.resizable(False, False) #ограничение изменения размера окна
window.configure(background='green')
label = Label(text=' Какой график желаете построить? ', font=("Arial", 23), background="yellow")
label.pack()
def plot_parabola():
fig, ax = plt.subplots()
x = np.linspace(-10, 10, 100)
y = x**2
ax.plot(x, y)
fig.suptitle('парабола Y = X^2 :P')
plt.show()
def plot_hyperbola():
fig, ax1 = plt.subplots()
x1 = np.linspace(-10, 10, 100)
y1 = 1/x1
ax1.plot(x1, y1)
fig.suptitle('гипербола Y = 1/X :D')
plt.show()
def plot_line():
plt.plot([1,2,3,4])
plt.suptitle('прямая Y = KX :#')
plt.show()
def plot_inverted_parabola():
fig, ax = plt.subplots()
x = np.linspace(-10, 10, 100)
y = -x**2
ax.plot(x, y)
fig.suptitle('перевернутая парабола Y = -X^2 :3')
plt.show()
def plot_inverted_hyperbola():
fig, ax1 = plt.subplots()
x1 = np.linspace(-10, 10, 100)
y1 = 1/-x1
ax1.plot(x1, y1)
fig.suptitle('перевернутая гипербола Y = 1/-X :J')
plt.show()
def plot_custom_function():
fig, ax1 = plt.subplots()
x1 = np.linspace(-10, 10, 100)
y1 = eval(en.get())
ax1.plot(x1, y1)
fig.suptitle('Ваша функция')
plt.show()
en = Entry()
en.pack()
btn1 = Button(text='Построить свою функцию', width=20, height=9, command=plot_custom_function, bg='cyan')
btn1.pack(anchor='nw')
btn2 = Button(text='ГИПЕРБОЛА', width=20, height=9, command=plot_hyperbola, bg='cyan')
btn2.pack(anchor='ne')
btn3 = Button(text='ПРЯМАЯ', width=20, height=9, command=plot_line, bg='cyan')
btn3.pack(anchor='sw')
btn4 = Button(text='ПЕРЕВ. ПАРАБОЛА', width=20, height=9, command=plot_inverted_parabola, bg='cyan')
btn4.pack(anchor='se')
btn5 = Button(text='ПЕРЕВ. ГИПЕРБОЛА', width=20, height=9, command=plot_inverted_hyperbola, bg='cyan')
btn5.pack(anchor = 'sw')
btn6 = Button(text='ПАРАБОЛА', width=20, height=9, command=plot_parabola, bg='cyan')
btn6.pack(anchor = 'se')
window.mainloop()
когда пытаюсь построить собственную функцию выдаёт это:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Василий\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
return self.func(*args)
File "I:\ГРАФИКИ.py", line 82, in plot_custom_function
y1 = eval(en.get())
File "<string>", line 0
SyntaxError: invalid syntax
как с этим бороться(
Бороться с этим надо путём исправления синтаксической ошибки. Видимо, она - в выражении, передаваемом в eval.