Afficher le graphe xy de Matplotlib avec PySimpleGUI.

introduction

J'ai créé un programme pour lire le fichier et afficher le graphique xy en me référant à l'exemple de programme de PySimpleGUI. Exemple de programme: PySimpleGUI-cookbook- (Recipe-Compare 2 Files), (Matplotlib Window With GUI Window)

Autres références Dessinez un graphique avec l'interface graphique PySimple Comment dessiner un graphe avec tkinter (pySimpleGUI) sans matplotlib

environnement

Win10Pro Anaconda Python3.7

Pour l'installation de PySimpleGUI, reportez-vous à l'article précédent Création d'une interface graphique de création de code QR avec PySimpleGUI.

Programme de création

Un programme qui télécharge un fichier CSV contenant des données x et y et vous permet de dessiner un graphique

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=Si vous ne spécifiez pas False, la console n'acceptera aucune entrée pendant ce temps et vous ne pourrez pas retourner au travail à moins que vous ne fermiez l'interface graphique.
    
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()

Exécutez le programme et spécifiez le nom du fichier. Vous pouvez sélectionner un fichier en appuyant sur "Parcourir" sur le côté. Appuyez ensuite sur «Soumettre». mp1.JPG

Appuyez ensuite sur "Tracer" pour tracer le graphique. Figure_1.png

Cliquez ici pour que le programme crée les données CSV utilisées cette fois. C'est le même que celui créé dans Stocker divers fichiers dans HDF5.

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()

#Définir les données sur csv avec dataframe
df = pd.DataFrame({'x':x,'y':y})
df.to_csv('csvdata.csv',index=False)

Résumé

Après tout, c'est facile à faire!

Recommended Posts

Afficher le graphe xy de Matplotlib avec PySimpleGUI.
Affichage graphique en temps réel par matplotlib
Dessiner un graphique du taux de rétention avec Matplotlib
Dessinez un graphique avec l'interface graphique PySimple
Afficher les formules de notation LaTeX en Python, matplotlib
Comment supprimer l'erreur d'affichage dans matplotlib
Afficher les diagrammes matplotlib dans une application Web
Installer matplotlib et afficher le graphique dans Jupyter Notebook
Album graphique matplotlib
Comment masquer l'entrée utilisateur dans l'interface graphique PySimple
Mettez Scipy + Matplotlib dans Ubuntu sur Vagrant et affichez le graphique avec X11 Forwarding
Omettre les graduations du graphique après la virgule décimale dans matplotlib
Afficher le graphique lors de la modification des paramètres avec PySimpleGUI + Matplotlib
Mettez matplotlib dans Centos7.
Dessin graphique avec matplotlib
Dessin graphique avec python
Afficher les images avec Matplotlib
Graphique de bande avec matplotlib
Graphique 2D dans matplotlib
[GUI en Python] PyQt5-Dialog-
Dessiner un graphique avec python
Traitement de fichiers multiples avec Kivy + Matplotlib + Draw Graph sur GUI
Créer un graphique SVG avec matplotlib avec heroku (affiché en japonais)
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
Construction de l'environnement VScode (sur Mac) et affichage des graphiques en Python (@ browser)