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

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

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

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

(1)Csv数据

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

1774312-20190820231552683-1019924669.png

(2)遇到的坑

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

1774312-20190820233128436-566671727.png

2、创建数组

1774312-20190820233550673-1581757851.png

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

1774312-20190820233805607-1889477522.png

(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。

1774312-20190820232536592-10561708.png

单独的figure

1774312-20190820232639173-1139608835.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值