python打开csv文件绘制折线图_python-matplotlib读取csv文件数据画折线图

看到同事用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)代码

importnumpy as npimportmatplotlib.pyplot as pltimportmatplotlib.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=0while (count

i= i + 1count= 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=0while (count

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.6i= i + 1count= count + 1plt.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

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值