函数功能:读取文件中的几列,绘制折线图,标注x轴标签和y轴标签,表明,曲线最大最小值等。
效果:
源码:
#导入库 import csv import matplotlib.pyplot as plt import pandas as pd import numpy as np #文字显示乱码问题 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['font.family'] = 'sans-serif' plt.rcParams['axes.unicode_minus'] = False #读文件 data = pd.read_csv('E:datamanualprocessData处理后20211127093020.csv') #读取指定列 xdata = [] y1data = [] y2data = [] xdata = data.loc[:, '时间'] #横坐标 时间是列名 y1data = data.loc[:, '列名1'] #多条曲线的y值 参数名为csv的列名 y2data = data.loc[:, '列名2'] y3data = data.loc[:, '列名5'] # color可自定义折线颜色,marker可自定义点形状,label为折线标注 plt.plot(xdata, y1data, color='r', marker='o', mec='r', mfc='w', label=u'列名1的曲线注释') plt.plot(xdata, y2data, color='b', marker='*', mec='r', mfc='w', label=u'列名2的曲线注释') plt.plot(xdata, y2data, color='g', marker='1', mec='r', mfc='w', label=u'列名3的曲线注释') plt.title(u"表名", size=10) #其中参数loc用于设置legend的位置,bbox_to_anchor用于在bbox_transform坐标(默认轴坐标)中为图例指定任意位置。 plt.legend(loc=1, bbox_to_anchor=(1.15,1.0),borderaxespad = 0) plt.xlabel(u'x轴名', size=10) #设置x轴标签旋转角度和字体大小 plt.xticks(rotation=10, fontsize=8) plt.ylabel(u'y轴名', size=10) plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(2))# 设置横坐标间隔(每隔两个横坐标显示一个横坐标,解决横坐标显示重叠问题) #绘制曲线最大最小值 max_indx=np.argmax(y1data)#找出曲线1的最大值下标 x_max_indx = xdata[max_indx]#最大值对应x轴标签 min_indx=np.argmin(y1data)#最小值下标 #以‘ks’代表的方式,在图上max值位置标记点 plt.plot(max_indx,y1data[max_indx],'ks') show_max='[最大值:'+str(y1data[max_indx])+']' #该函数用以在图上标注文字 #plt.annotate(s='str',xy=(x,y) ,xytext=(l1,l2) ,...) #s:为注释文本内容,xy:为被注释的坐标点,xytext:为注释文字的坐标位置 plt.annotate(show_max,xytext=(max_indx,y1data[max_indx]+1),xy=(max_indx,y1data[max_indx])) #以‘gs’代表的方式,在图上min值位置标记点 plt.plot(min_indx,y1data[min_indx],'gs') show_min='[最小值:'+str(y1data[min_indx])+']' plt.annotate(show_min,xytext=(min_indx-1,y1data[min_indx]+1),xy=(min_indx,y1data[min_indx])) # text函数第一个参数是x轴坐标,第二个参数是y轴坐标,第三个参数是要显式的内容 # alpha 设置字体的透明度,family 设置字体,size 设置字体的大小,style 设置字体的风格,wight 字体的粗细 # bbox 给字体添加框,alpha 设置框体的透明度, facecolor 设置框体的颜色 plt.text(max_indx,20, "1路最大值:"+str(y1data[max_indx])+"最小值:"+str(y1data[min_indx]), size = 10, alpha = 1) plt.savefig(r'E:datamanualprocessData处理后20211127093020.jpg')#保存图片 plt.show()
颜色表
marker标记风格:
linestyle线条样式
参考
python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四) - 知乎 (zhihu.com)
python matplotlib各种绘图类型完整总结_忆殇D.Rose的博客-CSDN博客
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)