ich möchte mir ein Programm mit Python erstellen, das aus txt-Files (zwei Spalten mit Zahlen) Diagramme erstellt. Dabei sollen "Titel", "x-Achse", "y-Achse" und "Labels" über Einträge (Entry) in einem Fenster definiert werden. Da im Diagramm unterschiedlich viele Kurve dargestellt werden sollen, können auch mehrere txt-Files ausgewählt werden.
Möchte ich nun die Labels für mehrere Kurve im Diagramm hinzufügen (ebenfalls über Entry), scheitere ich leider Ich würde die "Labels" gerne ebenfalls über Entry-Einträge hinzufügen. Hierfür habe ich eine for-Schleife verwendet.
Code: Alles auswählen
entry = []
for k in range(Anzahl_files):
tk.Label(window2, text='Label '+str(k+1)).grid(row=3+k, sticky=tk.E)
entry = tk.Entry(window2, width=50).grid(row=3+k, column=1, padx=20)
# entry.append(entry)
Im folgenden ist der gesamte Code aufgeführt:
Code: Alles auswählen
# -*- coding: utf-8 -*-
import tkinter as tk
import numpy as np
import matplotlib.pyplot as mpl
#==============================================================================================
def Diagramm_erstellen():
mpl.figure()
mpl.grid(True)
mpl.title(entry_t.get())
mpl.xlabel(entry_x.get())
mpl.ylabel(entry_y.get())
for i in filenames:
data = np.loadtxt(i)
x = data[0:,0]
y = data[0:,1]
mpl.plot(x, y, label='') # im label soll auf Entry-Einträge zugegriffen werden
mpl.legend(loc=4, fontsize=10)
mpl.show()
#==============================================================================================
global filenames, entry_t, entry_x, entry_y, entry_s, entry
# txt-Files auswählen:
filenames = tk.filedialog.askopenfilenames(defaultextension='.txt', title='Dateien auswählen')
Anzahl_files = len(filenames)
#
window2 = tk.Tk()
window2.title('Einstellungen für das Diagramm')
#
tk.Label(window2, text='Titel').grid(row=0, sticky=tk.E)
entry_t = tk.Entry(window2, width=50).grid(row=0, column=1, padx=20)
#
tk.Label(window2, text='x-Achse').grid(row=1, sticky=tk.E)
entry_x = tk.Entry(window2, width=50).grid(row=1, column=1, padx=20)
#
tk.Label(window2, text='y-Achse').grid(row=2, sticky=tk.E)
entry_y = tk.Entry(window2, width=50).grid(row=2, column=1, padx=20)
#
entry = []
for k in range(Anzahl_files):
tk.Label(window2, text='Label '+str(k+1)).grid(row=3+k, sticky=tk.E)
entry = tk.Entry(window2, width=50).grid(row=3+k, column=1, padx=20)
# entry.append(entry)
#
tk.Button(window2, text='Weiter', command=Diagramm_erstellen).grid(row=5+Anzahl_files, sticky=tk.E)
tk.Button(window2, text='Abbrechen', command=window2.destroy).grid(row=5+Anzahl_files, column=1, padx=20)
#==============================================================================================
window2.mainloop()