Вечер,
Я хочу вставить точку данных извне в существующий график (f (x) = x, g (x) = x ** 2). Для этого в поля ввода можно ввести координаты x и y. Затем пользователь может нажать кнопку, чтобы вставить точку.
При условии, что точка данных (x1, y1) вставлена, и пользователь пытается ввести новую точку данных (x2, y2). В этом случае GUI должен отображать только кривые (f (x), g (x)) и точку (x2, y2). Последняя точка (x1, y1) должна быть удалена.
Мое решение работает только частично: можно создать дополнительные точки (x, y), но старые не удаляются ...
Знает ли кто-нибудь из вас подход к решению проблемы, описанный выше.
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import tkinter as tk
import numpy as np
fig = Figure(figsize = (9, 6), facecolor = "white")
axis = fig.add_subplot(111)
x_values = np.array([1,2,3,4,5,6,7])
axis.plot(x_values, x_values, "-r")
axis.plot(x_values, x_values ** 2, "--g")
axis.grid()
root = tk.Tk()
Label(root, text = "x =" ).grid(row = 0, column = 0)
Label(root, text = "y =" ).grid(row = 1, column = 0)
x = DoubleVar()
y = DoubleVar()
x_entry = Entry(root, textvariable = x).grid(row = 0, column = 1)
y_entry = Entry(root, textvariable = y).grid(row = 1, column = 1)
def plotgraphs():
axis.plot(x.get(), y.get(), "ko")
canvas = FigureCanvasTkAgg(fig, master = root)
canvas._tkcanvas.grid(row = 2, column = 1)
Button(root, text = "New Graphs", command = plotgraphs).grid(row = 0, column = 2)
canvas = FigureCanvasTkAgg(fig, master = root)
canvas._tkcanvas.grid(row = 2, column = 1)
root.mainloop()