Ich habe ein Programm zum Lesen der Datei und zum Anzeigen des xy-Diagramms unter Bezugnahme auf das Beispielprogramm von PySimpleGUI erstellt. Beispielprogramm: PySimpleGUI-cookbook- (Rezept-Vergleichen von 2 Dateien), (Matplotlib-Fenster mit GUI-Fenster)
andere Referenzen Zeichnen Sie ein Diagramm mit der PySimple-Benutzeroberfläche Wie zeichnet man ein Diagramm mit tkinter (pySimpleGUI) ohne matplotlib
Win10Pro Anaconda Python3.7
Informationen zur Installation von PySimpleGUI finden Sie im vorherigen Artikel Erstellen einer GUI zur Erstellung von QR-Codes mit PySimpleGUI.
Ein Programm, das eine CSV-Datei mit x- und y-Daten hochlädt und das Zeichnen eines Diagramms ermöglicht
from pathlib import Path
import matplotlib.pyplot as plt
import pandas as pd
import PySimpleGUI as sg
sg.theme('Light Blue 2')
def draw_plot(x,y):
plt.plot(x,y)
plt.show(block=False)
#block=Wenn Sie nicht False angeben, akzeptiert die Konsole während dieser Zeit keine Eingaben und Sie können erst wieder zur Arbeit zurückkehren, wenn Sie die GUI schließen.
def check_file(file_name):
p = Path(file_name)
print(p.suffix)
if p.suffix == '.csv':
df = pd.read_csv(p)
x = df.iloc[:,0]
y = df.iloc[:,1]
return x, y
else:
print('Wrong data file, data must be CSV')
return None, None
layout = [[sg.Text('Enter csv data')],
[sg.Text('File', size=(8, 1)),sg.Input(key='-file_name-'), sg.FileBrowse()],
[sg.Submit()],
[sg.Button('Plot'), sg.Cancel()],
[sg.Button('Popup')]]
window = sg.Window('Plot', layout)
while True:
event, values = window.read()
if event in (None, 'Cancel'):
break
elif event in 'Submit':
print('File name:{}'.format(values['-file_name-']))
x,y = check_file(values['-file_name-'])
if x[0] == None:
sg.popup('Set file is not CSV')
elif event == 'Plot':
draw_plot(x,y)
elif event == 'Popup':
sg.popup('Yes, your application is still running')
window.close()
Führen Sie das Programm aus und geben Sie den Dateinamen an. Sie können eine Datei auswählen, indem Sie auf der Seite auf "Durchsuchen" klicken. Drücken Sie dann auf "Senden".
Drücken Sie dann "Plotten", um das Diagramm zu zeichnen.
Klicken Sie hier, damit das Programm die diesmal verwendeten CSV-Daten erstellt. Es ist dasselbe wie das in Verschiedene Dateien in HDF5 speichern erstellte.
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
def base_func(x,a,b,c):
y = c + a*(x - b)**2
return y
x = np.arange(-30, 30, 1)
para = [2.0,5.0,10.0]
np.random.seed(seed=10)
y = base_func(x,para[0],para[1],para[2])+np.random.normal(0, 60, len(x))
plt.scatter(x , y)
plt.show()
#Setzen Sie die Daten mit dem Datenrahmen auf CSV
df = pd.DataFrame({'x':x,'y':y})
df.to_csv('csvdata.csv',index=False)
Immerhin ist es einfach zu machen!
Recommended Posts