python画折线
# -*- coding: utf-8 -*- """ build by cjiejie, python3.7 + matplotlib, windows10 amd64 """ import numpy as np import matplotlib.pyplot as plt import re import io ''' 按顺序画一组单维数据 file_src: 读取的文件内容数据 title: 显示数据标题 re_str: 正则表达式格式 num: 待取数据位于正则表达式中的位置 ''' def print_num(file_src,legend,re_str,num): #plt.title("xxx") x = [] y = [] pattern1 = re.compile(re_str) result_list = pattern1.findall(file_src,re.I) cnt = 0 for each in result_list: pattern2 = re.compile("[-+]?\d*\.?\d+") result = pattern2.findall(each) cnt += 1 x.append(cnt) y.append(float(result[num])) plt.plot(x, y) plt.legend(legend, loc='lower right') ''' 画运控偏差参数,deltaY deltaR ''' def print_delta(): # 获取文件内容 f = open("delta.txt", 'r') file_src = f.read() f.close() # 正则表达式格式 delta_re_str = "c_delta:[-+]?\d*\.?\d+,[-+]?\d*\.?\d+" # 画子图 plt.subplot(3, 2, 1) print_num(file_src,["deltaY","deltaR"],delta_re_str,0) print_num(file_src,["deltaY","deltaR"],delta_re_str,1) plt.subplot(3, 2, 2) fdelta_re_str = "f_delta:[-+]?\d*\.?\d+,[-+]?\d*\.?\d+" print_num(file_src,["FdeltaR","setW"],fdelta_re_str,1) out_agv_vw = "out_agv_vw:[-+]?\d*\.?\d+,[-+]?\d*\.?\d+,[-+]?\d*\.?\d+" print_num(file_src,["FdeltaR","setW"],out_agv_vw,2) plt.subplot(3, 2, 3) print_num(file_src,["vx"],out_agv_vw,0) vel_re_str = "set&get V1:[-+]?\d*\.?\d+,[-+]?\d*\.?\d+ V2:[-+]?\d*\.?\d+,[-+]?\d*\.?\d+" plt.subplot(3, 2, 4) print_num(file_src,["setV1","getV1","setV2","getV2"],vel_re_str,1) print_num(file_src,["setV1","getV1","setV2","getV2"],vel_re_str,2) print_num(file_src,["setV1","getV1","setV2","getV2"],vel_re_str,4) print_num(file_src,["setV1","getV1","setV2","getV2"],vel_re_str,5) ''' 主函数入口 ''' if __name__ == '__main__': print_delta() plt.suptitle("cjeijie matplot test") plt.show() exit()
每天进步一点点!