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行。

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()

绘制数据日期