ich möchte in einen bestehenden Plott (f(x) = x, g(x) = x**2) extern einen Datenpunkt einfügen. Dazu werden die x- und y- Koordinaten eingegeben und anschließend auf einen Button gedrückt. Angenommen es wird ein Datenpunkt (x1, y1) eingefügt. Dann soll die GUI bei Eingabe eines zweiten Datepunkts (x2, y2) nur die Kurven und (x2, y2) anzeigen. Der erste Punkt soll also gelöscht werden.
Meine Lösung funktioniert nur teilweise: Es können zusätzliche Punkte (x,y) erzeugt werden, die alten werden jedoch nicht gelöscht....
Kennt jemand von euch einen Ansatz, um das oben beschriebene Problem zu lösen.
Code: Alles auswählen
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()