matplotlib库:一个优秀的数据可视化第三方库
文档:https://matplotlib.org/users/index.html
样例:https://matplotlib.org/gallery/index.html
一、matplotlib库简介
matplotlib由各种可视化类构成,内部结构复杂,其受matlab启发(怪不得很像matlab)。
matplotlib.pyplot是绘制各类可视化图形的命令子库,用户可通过调用pyplot使用Matplotlib中所有可视化的类。
matplotlib库的引用:import matplotlib.pyplot as plt
二、matplotlib库中的各类主要函数
1、pyplot中的plot()函数:plt.plot(x, y, format_string ,**kwargs)
参数解释:
x:表示x轴数据,列表或数组,可选。
y:表示y轴数据,列表或数组。
format_string:控制曲线的格式字符串,可选。有颜色字符、风格字符和标记字符组成。
颜色字符可由英语颜色首字母或RGB(#000000)或灰度值(0-1)构成。
风格字符:'-': 实线 '--':破折线 '-.':点划线
':':虚线 '' ''(空或者空格,单引号里夹单引号):无线条等。
标记字符:在曲线中的每个数据点的标记方式。主要有:
'.'点 ','像素(极小点) 'o'圆心 '*'星型 '1'下花三角
'2'上花三角 's'实心方型 'p'实心五角等。
**kwargs:第二组或跟多(x,y,fortmat_string)
color:控制颜色,例,color='red';
linestyle:线条风格,例,linestyle='dashed'; marker:标记风格,例,marker='o'
markerfececolor:标记颜色,例,markerfacecolor='blue';
markersize:例,标记尺寸,markersize=20
注:当绘制多条曲线时,各条曲线的x不能省略。当只绘制一条曲线,可省略x轴数据,
y轴数据索引值可作为x轴,进而将图形绘制出来。
2、pyplot的中文显示方法:
两种方法:
a) 方法一:pyplot不默认支持中文显示,需要pyplot.rcParams属性修改字体实现。(修改全局字体)
rcParams的属性:
'font.family':用于显示字体的名字
pyplot.rcParams['font.family'] : 'SimHei':中文黑体 'Kaiti':中文楷体 'LiSu':中文隶书
'FangSong':中文仿宋 'YouYuan':中文幼圆 'STsong':华文宋体 等
'font.style' :字体风格,正常是 'normal' 或 斜体 'italic'
'font.size' :字体大小,整数字号或者 'large' ,'x-small'
b) 方法二:在有中文输出的地方,增加一个属性:fontproperties。(修改某处字体,推荐这种方法)
例如:ptl.xlabel(' x轴 标签 ', fontproperties='SimHei', fontsize=20 ) //表示此处字体为黑体,大小为20
3、pyplot的文本显示:
函数 | 说明 |
plt.xlabel() | 对x轴增加文本标签 |
plt.ylabel() | 对y轴增加文本标签 |
plt.title() | 对图形整体增加文本标签 |
plt.text() | 在任意位置增加文本 |
plt.annotate() | 在图形中增加带箭头的注解 |
a) plt.xlabel( s, **args) plt.ylabel(s, **args) plt.title(s, **args)
参数解释 :s便签内容,其他的参数可以是字体,字号,颜色等,具体查阅文档。
b) plt.text( x, y, s,fontsize,**args )
参数解释:x,y 表示文本位置,s表示文本内容,以及其他属性,具体查阅文档。
c) plt.annotate( s, xy=arrow_crd, xytext=text_crd , arrowprops=dict )
参数解释:
s:表示注释内容。
xy:一个坐标元组,表示箭头的位置。
xytext:一个坐标元组,表示注解文本的位置。
arrowprops:字典类型,定义了箭头的一些属性。
4、pyplot的自绘图区域:
a) plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1 )
理念:设定网络,选中网络,确定选中行列区域数量,编号从0开始。
参数解释:
GridSpec:一个二元元组(x,y),将绘图区域分成x行y列。
CurSpec:一个二元元组(m,n ),选中第m行,n列网格作为当前绘图区域。
colspan=p ,rowspan=q :类似于html中的<table>标签,合并第n列的第n+p-1列,合并第q行到第q+m-1行。
b) plt.subplot()=subplot(nrows, ncols, index, **kwargs)
参数解释:ncows,ncols,index:表示将绘图区分成nrows行ncols列,当前绘图区处于第index个网格
index从1开始
三、pyplot常用基础图表函数
函数 | 说明 |
plt.plot(x,y,fmt) | 绘制一个坐标图 |
plt.boxplot(data,notch,position) | 绘制一个箱形状图 |
plt.bar(left,height,width,bottom) | 绘制一个条形图 |
plt.barsh(width,bottom,left,height) | 绘制一个横向条i形图 |
plt.polar(theta,r) | 绘制极坐标 |
plt.pie(data,explode) | 绘制饼图 |
plt.psd(x,NFFT=256,pad_to,Fs) | 绘制功率谱密度图 |
plt.specgram(x,NFFR=256,pad_to,F) | 绘制谱图 |
plt.cohere( x, y,NFFT=256,Fs ) | 绘制X-Y相关性函数 |
plt.scatter(x,y) | 绘制散点图,其中,x和y长度相同 |
plt.step(x,y, where ) | 绘制步阶图 |
plt.hist( x, bins , normed ) | 绘制直方图 |
plt.contour(X,Y ,Z,N ) | 绘制等值图 |
plt.vlines() | 绘制垂直图 |
plt.stem(x,y,linefmt,markerfmt) | 绘制柴火图 |
plt.plot_data() | 绘制数据日期 |