定制界面讀取 txt 文件并且繪圖(python)
摘要:本文主要使用tkinter定制GUI,讀取txt文件,使用matplotlib繪圖。
00 導入所需庫
import os
import numpy as np
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
import matplotlib.pyplot as plt
from tkinter import *
from tkinter import filedialog
###
01 定制GUI
def readtxt():
global ftype
ftype=filedialog.askopenfilename(title='打開 *.txt',filetypes=[('LE-100','*.txt')])
win=Tk()
win.title('技術鄰')
b1=Button(win,text='txt數據',relief='raised',font='宋體 20 bold',width=15,command=readtxt)
b1.pack(padx=50,pady=10,side='left')
b2=Button(win,text='分析',relief='raised',font='宋體 20 bold',width=15,
foreground='purple',background='lightgray',command=win.destroy)
b2.pack(padx=50,pady=20,side='left')
win.mainloop()
###

02 讀取txt文件
f_name=ftype.split('/')
f_dir='/'.join(f_name[0:-1])
os.chdir(f_dir)
fgs=f_name[-1].split('.')
if fgs[-1]=='txt':
with open(ftype,'r') as f:
vib=f.read()
vib_list=vib.split()
vib_z=vib_list[3::3]
vib_z=[int(x) for x in vib_z]
vib_y=vib_list[4::3]
vib_y=[int(x) for x in vib_y]
vib_x=vib_list[5::3]
vib_x=[int(x) for x in vib_x]
fs=250
xt=np.linspace(1/fs,len(vib_z)/fs,len(vib_z))
xt=xt.tolist()
xt=[format(x,'.3f') for x in xt]
xt=[float(x) for x in xt]
03 繪圖
fig,ax=plt.subplots(3,1,sharex='all')
fig.set_size_inches(11.69,8.27)
fig.set_dpi(200)
fig.subplots_adjust(hspace=0)
ax1=ax[0]
ax1.plot(xt,vib_x)
ax1.set_ylabel('X方向振動')
ax1.set_title('LE-100測試數據')
ax1.grid(axis='both')
ax2=ax[1]
ax2.plot(xt,vib_y,linewidth=0.5)
ax2.set_ylabel('Y方向振動')
ax2.grid(axis='both')
ax3=ax[2]
ax3.plot(xt,vib_z,color='blue')
ax3.set_ylabel('Z方向振動')
ax3.set_xlabel('時間')
ax3.grid(axis='both')
fig.savefig(f_name[-1]+'.jpg')
fig.show()

工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















