PySimpleGUI에서 Matplotlib의 xy 그래프를 표시합니다.
12955 단어 파이썬matplotlibPySimpleGUI
소개
PySimpleGUI의 샘플 프로그램을 참고로 파일을 읽어 xy 그래프를 표시하는 프로그램을 만들어 보았다.
샘플 프로그램: PySimpleGUI-cookbook-(Recipe-Compare 2 Files), (Matplotlib Window With GUI Window)
기타 참고
PySimpleGUI로 그래프 그리기
tkinter (pySimpleGUI)에서 matplotlib없이 그래프를 작성하는 방법
환경
Win10Pro
아나콘다
Python3.7
PySimpleGUI 설치에 대한 자세한 내용은 이전 기사 PySimpleGUI로 QR 코드 작성 GUI 만들기를 참조하십시오.
작성 프로그램
x, y 데이터가 포함된 CSV 파일을 업로드하여 그래프를 작성하는 프로그램
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=Falseの指定をしないと、その間コンソールは何も入力を受け付けなくなり、GUI を閉じないと作業復帰できない。
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()
프로그램을 실행하여 파일 이름을 지정합니다. 옆의 'Browse'를 누르면 파일을 선택할 수 있습니다. 그리고 'Submit'을 누릅니다.
그리고 'Plot'을 누르면 그래프가 플롯됩니다.
덧붙여 이번에 사용한 CSV 데이터를 만드는 프로그램은 이쪽
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()
#dataをdataframeでcsvにする
df = pd.DataFrame({'x':x,'y':y})
df.to_csv('csvdata.csv',index=False)
요약
역시 손쉽게 만들 수 있습니다!
Reference
이 문제에 관하여(PySimpleGUI에서 Matplotlib의 xy 그래프를 표시합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Gyutan/items/705dcc643b880d4147a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)