python——matplotlib库

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:线条风格,例,line;    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()绘制数据日期