首页 > 编程语言 >python-使用matplotlib画折线图

python-使用matplotlib画折线图

时间:2023-10-22 21:35:12浏览次数:38  
标签:plot plt python matplotlib label print elementsList 折线图 elements

  1 import os
  2 from configparser import ConfigParser
  3 import matplotlib.pyplot as plt
  4 
  5 plt.rcParams['font.sans-serif']=['SimHei']
  6 plt.rcParams['axes.unicode_minus']=False
  7 
  8 configFile='config.ini'
  9 #section列表
 10 sectionList = []
 11 
 12 #每行元素个数
 13 elements = 0
 14 #元素名称列表
 15 nameList = []
 16 #整理后的数据列表
 17 elementsList = []
 18 
 19 #待分析文件名称
 20 txtFileName = ''
 21 
 22 #判断字符串是否为浮点数
 23 def isFloatNum(str):
 24     s = str.split('.')
 25     if len(s) > 2:
 26         return False
 27     else:
 28         for si in s:
 29             if not si.isdigit():
 30                 return False
 31         return True
 32 
 33 def readTxtFile():
 34     #默认了文件存在
 35     f = open(txtFileName , encoding='utf-8')
 36     # 将文件按行读到list当中
 37     data = f.readlines()
 38 
 39     # 关文件
 40     f.close()
 41 
 42     #数据处理
 43     for i in range(0 , len(data)):
 44         global elements
 45         global elementsList
 46         line = data[i].replace('\n','')
 47         elementList = line.split(',')
 48         #分割后判断元素个数
 49         if len(elementList) == elements:
 50             isFloat = True
 51             # 数据判断,判断每个数据是否是浮点数
 52             for i in range(0,elements):
 53                 if isFloatNum(elementList[i]) == False:
 54                     isFloat = False
 55             #如果本行数据符合分析格式
 56             if isFloat == True:
 57                 for i in range(0,elements):
 58                     elementsList[i].append(float(elementList[i]))
 59 
 60             else:
 61                 print("Discard the data:" + line)
 62         else:
 63             print("Discard the data:" + line)
 64     # print(elementsList)
 65     # print(len(data))
 66     # print(data)
 67 
 68 
 69 
 70 #读取配置文件
 71 def readConfigFile():
 72     global txtFileName
 73     global elements
 74     global nameList
 75     global elementsList
 76     file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), configFile)
 77     cf = ConfigParser()
 78     cf.read(configFile, encoding='utf-8')
 79     #读取每行元素个数
 80     elements = cf.getint('dataInfo', 'elements')
 81     #读取元素名称
 82     if elements > 0:
 83         for i in range(0 , elements):
 84             nameList.append(cf.get('dataInfo','C'+ str(i+1) + 'Name'))
 85             elementsList.append([])
 86         # print(nameList)
 87     #读取待分析文件路径
 88     txtFileName = cf.get('file','fileName')
 89     print(txtFileName)
 90 
 91     # sectionList = cf.sections()
 92     # print(len(sectionList))
 93     # print(sectionList)#['dataInfo']
 94     #配置项
 95     # print(cf.options('dataInfo'))#['elements', 'c1name', 'c2name', 'c3name', 'c4name', 'c5name', 'c6name']
 96     #键值对
 97     # print(cf.items('dataInfo'))
 98 
 99     #获取值
100     # print(cf.getint('dataInfo','elements'))
101     # print(cf.get('dataInfo','C2Name'))
102    
103 def drawPolyline():
104     global elementsList
105     #第一个图
106     plt.subplot(2,4,1)
107     plt.title("浓度图")
108     plt.plot(elementsList[0],label="浓度")
109     plt.xlabel("X")
110     plt.ylabel("Y")
111     plt.legend()
112 
113     #第二个图
114     plt.subplot(2,4,2)
115     plt.title("幅值图")
116     plt.plot(elementsList[1],label="平均幅值")
117     plt.plot(elementsList[2],label="实时幅值")
118     plt.xlabel("X")
119     plt.ylabel("Y")
120     plt.legend()
121 
122     #第三个图
123     plt.subplot(2,4,3)
124     plt.title("实时自学习曲线图1")
125     plt.plot(elementsList[1],label="平均幅值")
126     plt.plot(elementsList[3],label="实时学习基值")
127     plt.xlabel("X")
128     plt.ylabel("Y")
129     plt.legend()
130 
131     #第四个图
132     plt.subplot(2,4,4)
133     plt.title("实时自学习曲线图2")
134     plt.plot(elementsList[2],label="实时幅值")
135     plt.plot(elementsList[3], label="实时学习基值")
136     plt.xlabel("X")
137     plt.ylabel("Y")
138     plt.legend()
139 
140     #第二列第一个图
141     plt.subplot(2,4,5)
142     plt.title("温度-湿度图")
143     plt.plot(elementsList[4],label="温度")
144     plt.plot(elementsList[5],label="湿度")
145     plt.xlabel("X")
146     plt.ylabel("Y")
147     plt.legend()
148 
149     #第二列第二个图
150     plt.subplot(2,4,6)
151     plt.title("温度-平均幅值图")
152     plt.plot(elementsList[4],label="温度")
153     plt.plot(elementsList[1],label="平均幅值")
154     plt.xlabel("X")
155     plt.ylabel("Y")
156     plt.legend()
157 
158     #第二列第三个图
159     plt.subplot(2,4,7)
160     plt.title("湿度-平均幅值图")
161     plt.plot(elementsList[5],label="湿度")
162     plt.plot(elementsList[1],label="平均幅值")
163     plt.xlabel("X")
164     plt.ylabel("Y")
165     plt.legend()
166 
167 
168     # for i in range(0,len(elementsList)):
169     #     plt.plot(elementsList[i])
170     plt.show()
171 
172 if __name__ == '__main__':
173     readConfigFile()
174     readTxtFile()
175     drawPolyline()
176 # See PyCharm help at https://www.jetbrains.com/help/pycharm/
#config.ini
#待解析文件名称 [file] fileName=test.txt #数据格式 [dataInfo] #每行元素个数 elements=6 #第一个元素名称 C1Name=concentration #第二个元素名称 C2Name=meanValue #第三个元素名称 C3Name=realTimeValue #第四个元素名称 C4Name=baseValue #第五个元素名称-温度 C5Name=temp #第六个元素名称-湿度 C6Name=humi #设备数据绘制曲线参数 [devDisplay] #放大倍数 devC1Magn=1 devC2Magn=1 devC3Magn=1 devC4Magn=1 devC5Magn=1 devC6Magn=1 #显示的列号 devDisColumn = 1,2,3,4,5,6

 

标签:plot,plt,python,matplotlib,label,print,elementsList,折线图,elements
From: https://www.cnblogs.com/fly28/p/17781185.html

相关文章

  • 一键解决[notice] A new release of pip available: 22.2 -> 22.2.2 [notice] To updat
    [notice]Anewreleaseofpipavailable:22.2->22.2.2[notice]Toupdate,run:python.exe-mpipinstall--upgradepip文章目录问题描述解决思路解决方法问题描述[notice]Anewreleaseofpipavailable:22.2->22.2.2[notice]Toupdate,run:python.exe-mpip......
  • 代码训练营第十一天(Python)| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150
    20.有效的括号思路:分析出三种情况,画图模拟。写代码容易写错。classSolution:defisValid(self,s:str)->bool:a_stack=list()foriins:ifi=='(':a_stack.append(')')elifi=='{':......
  • Python学习笔记(一)
    Python中一切皆对象,函数和类也是对象,属于Python的一等公民。对象可以赋值给一个变量对象可以添加到集合对象中对象可以作为参数传递给函数对象可以当做函数的返回值对象的三个特征:1、身份(id());2、类型;3、值type->int>1type>class->objobject是最顶层基类type也是一个......
  • Python Web之Django
    一、环境需求1、OS:Windows102、IDE:PyCharm2019.23、Interpreter:Python3.7 二、项目搭建1、构建Django工程,打开PyCharm,点击【File】==》【NewProject...】==》【Django】。 2、项目工程保存路径、工程名称、解释器选择,点击【Create】创建项目工程,如下图所示:  ......
  • python系列教程216——何时使用列表解析
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......
  • 小白学Python - 使用Python的文件共享应用程序
    使用Python的文件共享应用程序计算机网络 是一个重要的主题,要理解这些概念,需要实际应用这些概念。在这篇特别的文章中,我们将了解如何使用Python制作一个简单的文件共享  Web服务器是理解URL(网址)和HTTP(用于查看网页的协议)的软件。Python有几个包,它们是模块的集合。它有几个内......
  • 小白学Python - 使用 Python 的 OpenCV 绘制矩形并提取对象
    使用Python的OpenCV绘制矩形并提取对象OpenCV是一个开源计算机视觉和机器学习软件库。可以在它的帮助下完成各种图像处理操作,例如操纵图像和应用大量滤镜。它广泛用于对象检测、人脸检测和其他图像处理任务。让我们看看如何使用OpenCV在图像上绘制矩形并提取对象。编写代码#......
  • 小白学Python - 在 Python 中使用 TensorFlow 进行面部口罩检测
    在Python中使用TensorFlow进行面部口罩检测我们将使用此Python脚本来训练口罩检测器并查看结果。鉴于训练有素的COVID-19口罩检测器,我们将继续实现另外两个Python脚本,用于:检测图像中的COVID-19口罩检测实时视频流中的口罩口罩检测系统流程图 为了训练自定义口罩检测器......
  • Python第七课——函数
    记忆关键点:一、定义函数defgreet_user():"""显示简单的问候语"""print("hello!")greet_user()defgreet_user():"""显示简单的问候语"""print("hello!")greet_user()defgreet_user(username):......
  • Python 函数:定义、调用、参数、递归和 Lambda 函数详解
    函数是一段代码块,只有在调用时才会运行。您可以将数据(称为参数)传递给函数。函数可以返回数据作为结果。创建函数在Python中,使用def关键字定义函数:示例defmy_function():print("Hellofromafunction")调用函数要调用函数,请使用函数名称后跟括号:示例defmy_function......