python实时绘制动态曲线_python读取文本绘制动态速度曲线

news/2024/7/1 22:32:35

本文实例为大家分享了python读取文本绘制动态速度曲线的具体代码,供大家参考,具体内容如下

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

效果图如下:

201806211123471.gif

源代码:

import numpy as np

from matplotlib import pyplot as plt

from matplotlib import animation

path = "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,lineZ

def 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,lineZ

anim1=animation.FuncAnimation(fig, animate, init_func=init, frames=len(XMat)-10, interval=2)

plt.show()

读取的文本格式如下:

201806211123472.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


http://www.niftyadmin.cn/n/3091689.html

相关文章

7.putty密钥登录Cenost7

系统:Centos7 连接工具:putty 32位 完整版本 连接工具获取地址:https://the.earth.li/~sgtatham/putty/0.70/w32/putty.zip 密钥生成工具 首先打开putty key generator密钥生成工具,该工具有五种生产密钥类型,如果不是…

18 已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果

面试题18:破解RANDOM随机数案例 已知下面的字符串是通过RANDOM随机数变量md5sum后,再截取一部分连续字符串的结果,请破解这些字符串对应的使用md5sum处理前的RANDOM对应的数字? 21029299 00205d1c a3da1677 1f6d12dd 890684b [roo…

python程序设计基础实验题_Python程序设计习题与答案

《 P y t h o n 程 序 设 计 》 习 题 与 参 考 答 案 第 1 章 基础知识 简单说明如何选择正确的 Python 版本。 答: 在选择 Python 的时候,一定要先考虑清楚自己学习 Python 的目的是什么,打算做哪方 面的开发, 有哪些扩展库可用…

使用Eclipse创建struts项目

在进行创建项目的时候,我们要知道struts是一个web的框架,他的主要的核心的类是总控制器,分控制器,以及表单这几个组成,总控制器和分控制器就是相当于MVC框架中的控制器(C),其实它就是…

bootstrap-导航(标签形tab导航)

1.运行效果如图所示 2.实现代码如下 <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><title>导航&#xff08;标签形tab导航&#xff09;</tit…

关于JQuery的serialize方法.让我崩溃一天的问题解决了

这几天做一个Ajax像服务器动态提交的表单然后给出即时反馈.这些表单内容都是一系列的.内容大同小异.所以代码和页面结构也是大同小异.但是其中有一个页面使用AJAX始终无法提取到服务器值.反而将此页的整个render出来的页面显示出来.关键代码如下:Code后台代码简略如下.只是为了…

python二分法代码_Python实现二分法检索(binary search)

二分法检索&#xff08;binary search&#xff09;又称折半检索&#xff0c;二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组&#xff08;array&#xff09;中。 首先将给定值key与字典中间位置上元素的关键码(key)比较&#xff0c;如果相等&#xff0c;则检索成…

JAVA NIO buffer (知识三)

java nio 里的buffer是缓存数据&#xff0c;通常缓冲区是一个数组&#xff0c;字节数组&#xff0c;也可以是别的类型。最常用的就是bytebuffer&#xff0c; 还有一些其它的类型&#xff1a; charbuffer&#xff0c; shortbuffer, intbuffer, longbuffer, floatbuffer, doubleb…