python + matplotlib画图

# -*- 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,title,re_str,num):
  plt.title(title)
  plt.xlabel("point")
  plt.ylabel("value")
  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)

'''
画运控偏差参数,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+"
  # 待画数据位于表达式位置0123
  deltaY_num = 0
  deltaR_num = 1
  # 画子图
  plt.subplot(1, 2, 1)
  print_num(file_src,"deltaY",delta_re_str,deltaY_num)
  plt.subplot(1, 2, 2)
  print_num(file_src,"deltaR",delta_re_str,deltaR_num)

'''
主函数入口
'''
if __name__ == '__main__':
  print_delta()
  plt.suptitle("cjeijie matplot test")
  plt.show()
  exit()

 

  

posted @ 2022-07-06 21:32  cjiejie  阅读(27)  评论(0)    收藏  举报