首页 > 编程语言 > 详细

python-matplotlib读取csv文件数据画折线图

时间:2019-08-21 01:15:20      阅读:914      评论:0      收藏:0      [点我收藏+]

  看到同事用matlab分析数据,画折线图,很直观的把我们的试车数据(转速、车速、电压、电流)表现在图上,很轻易的就定位到了故障点。还用同样的方法分析了六轴传感器的加速度和角速度,解决了四元数算法、零飘问题。感觉画图分析数据很有用,这技能需要掌握才行。

  网上找了一下,发现可用matlab、R语言、python画图。最终选了python,原因嘛,被“人生苦短我用python”,洗脑了好久。

  因为c用得比较多,感觉python用得好懵,没有代码块{},竟然是用缩进来表示作用域。。。

(1)Csv数据

  数据格式如下图,老大用树莓派收集的,为啥有个*号,我也不知道。

技术分享图片

 

 (2)遇到的坑

  1、np.loadtxt,dtype=str导入的数据是numpy_str格式,用np.str_("0x1028d0d4")创建的字符串才能匹配。

技术分享图片

 

2、不知道创建多大的数组,python可以创建模糊大小的数组,牛逼。。。果然是c用多了,只想到动态数组。

技术分享图片

 

3、用切片把数据第5、6位提取出来。

技术分享图片

 

(3)代码

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# np.set_printoptions(threshold=np.inf) # 去掉print省略的内容
 
# 导入数据
time,id,info=np.loadtxt(20190711.csv,dtype=str,delimiter=,,usecols=(0,1,2),unpack=True)
vmcId = np.str_("0x1028d0d4")


# i为匹配ID的帧数量
i = 0
count = 0
while (count < np.size(time)):
    if id[count] == vmcId:
        i = i + 1
    count = count + 1

# 创建数组
print(i)
engineTime = np.zeros(i) 
engineSpeed = np.zeros(i, dtype = np.int) 
vehicleSpeed = np.zeros(i, dtype = np.int) 

# 将数据保存至数组
i = 0
count = 0
while (count < np.size(time)):
    if id[count] == vmcId:
        engineTime[i] =  float(time[count])
        engineSpeed[i] = int(info[count][11:13]+info[count][9:11],16)
        vehicleSpeed[i] = engineSpeed[i]/7.42/60*1.96*3.6
        i = i + 1
    count = count + 1

plt.figure(1)                # 第一个图形
plt.subplot(2,1,1)             # 第一个图形的第一个子图。看成2行1列,当前为第1行
plt.plot(engineTime,engineSpeed,linewidth=0.5) 

plt.subplot(2,1,2)             # 第一个图形的第二个子图
plt.plot(engineTime,vehicleSpeed,linewidth=0.5)  

plt.figure(2)                # 第一个图形
# 默认subplot(1,1,1) 
plt.plot(engineTime,engineSpeed,g-,linewidth=0.5) 

plt.show()

 


 
 
(4)效果图
  两个折线图都在同一个figure。

技术分享图片

 

 

  单独的figure

技术分享图片

 

python-matplotlib读取csv文件数据画折线图

原文:https://www.cnblogs.com/zhulaoda/p/11386359.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!