Python读取文本绘制动态速度曲线(多图同步显示)

来源:互联网 发布:学校三级公共卫生网络 编辑:程序博客网 时间:2024/06/05 17:57

由于需要分析机械加工过程中各个轴的速度,于是用软件导出了数据,写了这个python脚本来显示速度曲线。

效果图如下:

源代码:

import numpy as npfrom matplotlib import pyplot as pltfrom matplotlib import animationpath = "Nccut_TraceFile.log"file = open(path, 'r')AMat = []; BMat = [];XMat = [];YMat = [];ZMat = [];for line in file.readlines():    lineArr = line.strip().split()    AMat.append(int(lineArr[0]))    BMat.append(int(lineArr[1]))    XMat.append(int(lineArr[2]))    YMat.append(int(lineArr[3]))    ZMat.append(int(lineArr[4]))    fig = plt.figure()axA = fig.add_subplot(5,1,1,xlim=(0, 0.2), ylim=(0, 40))axB = fig.add_subplot(5,1,2,xlim=(0, 0.2), ylim=(0, 40))axX = fig.add_subplot(5,1,3,xlim=(0, 0.2), ylim=(0, 200))axY = fig.add_subplot(5,1,4,xlim=(0, 0.2), ylim=(0, 200))axZ = fig.add_subplot(5,1,5,xlim=(0, 0.2), ylim=(0, 200))lineA, = axA.plot([], [], lw=1)  lineB, = axB.plot([], [], lw=1)  lineX, = axX.plot([], [], lw=1) lineY, = axY.plot([], [], lw=1) lineZ, = axZ.plot([], [], lw=1)def init():      lineA.set_data([], [])      lineB.set_data([], [])    lineX.set_data([], [])    lineY.set_data([], [])    lineZ.set_data([], [])      return lineA,lineB,lineX,lineY,lineZdef animate(i):    t = np.linspace(0, 0.2, 10)       yA = AMat[i:10 + i]      lineA.set_data(t, yA)        yB = BMat[i:10 + i]    lineB.set_data(t, yB)      yX = XMat[i:10 + i]    lineX.set_data(t, yX)     yY = YMat[i:10 + i]    lineY.set_data(t, yY)     yZ = ZMat[i:10 + i]    lineZ.set_data(t, yZ)     return lineA,lineB,lineX,lineY,lineZanim1=animation.FuncAnimation(fig, animate, init_func=init,  frames=len(XMat)-10, interval=2)  plt.show()


读取的文本格式如下:



说不定以后能用到,特此记之!

骆小俊 2017-8-23 11:32:45

原创粉丝点击