matplotlib数据可视化入门

Posted xiaopihaierletian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matplotlib数据可视化入门相关的知识,希望对你有一定的参考价值。

参考来源:《Python数据科学手册》第4章

URL:Python Data Science Handbook | Python Data Science Handbook

描述:笔记

目录:

1、Matplotlib常用技巧

  1.1 导入Matplotlib

  1.2 设置绘图样式

  1.3 用不用show()?如何显示图形

  1.4 将图形保存为文件

2、两种画图接口

  2.1 MATLAB风格接口

  2.2 面向对象接口

3、简易线形图

  3.1 调整图形:线条的颜色与风格

  3.2 调整图形:坐标轴上下限

  3.3 设置图形标签

4、简易散点图

  4.1 用plt.plot画散点图

  4.2 用plt.scatter画散点图

  4.3 plot与scatter:效率对比

5、可视化异常处理

  5.1 基本误差线

  5.2 连续误差线

6、密度图与等高线图

  6.1 三维视图的可视化

7、频次直方图、数据区间划分和分布密度

8、配置图例

  8.1 选择图例显示的元素

  8.2 在图例中显示不同尺寸的点

  8.3 同时显示多个图例

9、配置颜色条

  9.1 配置颜色条

  9.2 案例:手写数字

10、多子图

  10.1 plt.axes:手动创建子图

  10.2 plt.subplot:简易网格子图

  10.3 plt.subplots:用一行代码创建网格

  10.4 plt.GridSpec:实现更复杂的排列方式

11、文字与注释

  11.1 plt.text()

  11.2 坐标变换与文字位置

  11.3 箭头与注释

12、自定义坐标轴刻度

  12.1 主要刻度与次要刻度

  12.2 隐藏刻度与标签

  12.3 增减刻度数量

  12.4 花哨的刻度格式

  12.5 格式生成器与定位器小结

13、Matplotlib自定义:配置文件与样式表

  13.1 手动配置图形

  13.2 修改默认配置:rcParams

  13.3 样式表

14、用Matplotlib画三维图

  14.1 三维数据点与线

  14.2 三维等高线

  14.3 线框图和曲面图

  14.4 曲面三角剖分

15、用Basemap可视化地理数据

  15.1 地图投影

  15.2 画一个地图背景

  15.3 在地图上画数据

  15.4 案例:美国加州城市数据

  15.5 案例:地表温度数据

16、用Seaborn做数据可视化

  16.1 Seaborn与Matplotlib

  16.2 Seanborn图形介绍

  16.3 案例:探索马拉松比赛成绩数据

17、参考资料

  17.1 Matplotlib资源

  17.2 其他Python画图程序库

1、Matplotlib常用技巧

  1.1 导入Matplotlib

      

  1.2 设置绘图样式

      

      

  1.3 用不用show()?如何显示图形

      三种开发环境:脚本、IPython shell 和 IPython Notebook

      在脚本中,使用matplotlib时,显示图形必须用plt.show(),plt.show()会启动一个事件循环(event loop),并找到所有当前可用的图形对象,然后打开一个或多个交互式窗口显示图形,需要注意的是,一个python会话中只能使用一次plt.show(),因此通常都把它放在脚本的最后。

      在ipython shell中,需要启动matplotlib模式,通过魔法方式%matplotlib启动。不再需要使用plt.show()。可通过plt.draw()强制更新。

      在ipython notebook中,需要启动matplotlib模式。

      

  1.4 将图形保存为文件

      

      

       

2、两种画图接口

  2.1 MATLAB风格接口

      这种接口最重要的特性是有状态的(stateful):它会持续跟踪“当前的”图形和坐标轴,所有plt命令都可以应用,可用plt.gcf()获取当前图形,plt.gca()获取当前坐标轴。

      缺点:不方便切换子图。

      

      

  2.2 面向对象接口

      面向对象接口不再受到当前“活动”图形或坐标轴的限制,而变成了显式的Figure和Axes的方法。

      

      画比较复杂的图形时,对面对象方法会更方便。

3、简易线形图

  3.1 调整图形:线条的颜色与风格

      

      

  3.2 调整图形:坐标轴上下限

      

       

      

      

      

       

     

  3.3 设置图形标签

      

      

      

       matplotlib陷阱

         

       

4、简易散点图

  4.1 用plt.plot画散点图

      

 

      

      

      

  4.2 用plt.scatter画散点图

      

      

  4.3 plot与scatter:效率对比

      

5、可视化异常处理

  5.1 基本误差线

      

  5.2 连续误差线

      通过plt.plot与plt.fill_between来解决显示连续变量的误差。传入plt.fill_between的上下限参数画图,与通过plt.plot画的图形做对比,从而可视化出误差。    

      

6、密度图与等高线图

    在二维图上用等高线图或者彩色图来表示三维数据。

    用plt.contour画等高线图、用plt.contourf画带有填充色的等高线图(filled contourplot)的色彩、用plt.imshow显示图形。

  6.1 三维视图的可视化

    等高线图可以用plt.contour函数来创建,它需要三个参数:x轴、y轴、z轴三个坐标轴的网格数据。x轴和y轴表示图形中的位置,而z轴将通过等高线的等级来表示。

    

     当图形中只使用一种颜色时,默认使用虚线表示负数,使用实线表示正数。

     

      matplotlib的配色方案可以在ipython中用tab键浏览plt.cm模块对应的信息。 

      

       

      通过颜色条分析:黑色区域是波峰(peak),红色区域是波谷(valley)。

      说明:颜色的改变是一个离散而非连续的过程,所以看起来不那么干净  

      

      

       

7、频次直方图、数据区间划分和分布密度

  7.1 频次直方图

      

       

       以上为将一维数组分为区间创建一维频次直方图

  7.2 二维频次直方图与数据区间划分

      将二维数组按照二维区间进行切分,来创建二维频次直方图。

      

   7.3 核密度估计

      核密度估计(kernel density estimation,KDE),评估多维数据分布密度的常用方法。

      

           

8、配置图例  

    图例通过离散的标签表示离散的图形元素。

  8.1 选择图例显示的元素

    想在可视化图形中使用图例,可以为不同的图形元素分配标签。

    

    

    

     图例会默认显示所有元素的标签,但是会忽略那些不带标签的元素

    

     

        

  8.2 同时显示多个图例

      通过从头开始创建一个新的图例艺术家对象(legend artist),然后用底层的(lower-level)ax.add_artist()方法在图上添加第二个图例。

      

       

     

9、配置颜色条

    对于图形中由彩色的点、线、面构成的连续标签,用颜色条来表示的效果比较好。

    在matplotlib中,颜色条是一个独立的坐标轴,可以指明图形中颜色的含义。

    

  9.1 配置颜色条

     

      可以将颜色条本身仅看做是一个plt.Axes实例,可以适用关于坐标轴和刻度值的格式配置(如plt.clim())

 

10、多子图

  10.1 plt.axes:手动创建子图

      函数plt.axes(),默认创建一个标准的坐标轴,填满整张图。

      它有一个可选参数,有图形坐标系统的四个值构成,分别是表示图形坐标系统的[bottom,left,width,height](底坐标,左坐标,宽度,高度),数值的取值范围是左下角(原点)为0,右上角为1。

     

      

  10.2 plt.subplot:简易网格子图

      

      

      

      

  10.3 plt.subplots:用一行代码创建网格

      

       

      

       plt.subplots()与python索引从0开始的习惯保持一致。

       参数ha是水平对齐方式(horizonal alignment)的缩写,可为left,right,cente

  10.4 plt.GridSpec:实现更复杂的排列方式

      

  

11、文字与注释

  11.1 plt.text()

      通过plt.text()/ax.text()函数手动添加注释,它们可以在具体的x/y坐标点上放文字。

      plt.text()方法需要一个x轴坐标、一个y轴坐标、一个字符串和一些可选参数,比如文字的颜色、字号、风格、对其方式以及其它文字属性。

  11.2 坐标变换与文字位置

      

       

  11.3 箭头与注释

      函数plt.arrow()创建出的箭头是SVG向量图对象,会随着图形分辨率的变化而变化。

      函数plt.annotate(),即可以创建文字,也可以创建箭头(箭头能够灵活的配置)

      

12、自定义坐标轴刻度

    每个axes都有xaxis和yaxis属性,每个属性包含构成坐标轴的线条、刻度和标签的全部属性。

  12.1 主要刻度与次要刻度     

  12.2 隐藏刻度与标签

      

       

  12.3 增减刻度数量

      

  12.4 花哨的刻度格式

      

      

        

      

  12.5 格式生成器与定位器小结

内置的格式生成器与定位器
定位器类描述
plt.NullLocator无刻度
plt.FixedLocator刻度位置固定
plt.IndexLocator用索引作为定位器(如x=range(len(y)))
plt.LinearLocator从min到max均匀分布刻度
plt.LogLocator从min到max按对数分布刻度
plt.MultipleLocator刻度和范围都是基数(base)的倍数
plt.MaxNLocator为最大刻度找到最优位置
plt.AutoLocator(默认)以MaxNLocator进行简单配置
plt.AutoMinorLocator次要刻度的定位器
格式生成器类描述
plt.NullFormatter刻度上无标签
plt.IndexFormatter将一组标签设置为字符串
plt.FixedFormatter手动为刻度设置标签
plt.FuncFormatter用自定义函数设置标签
plt.FormatStrFormatter为每个刻度值设置字符串格式
plt.ScalarFormatter(默认)为标量值设置标签
plt.LogFormatter对数坐标轴的默认格式生成器

13、Matplotlib自定义:配置文件与样式表

  13.1 手动配置图形

  13.2 修改默认配置:rcParams

  13.3 样式表

      

        

14、用Matplotlib画三维图

    

  

     

     

  14.1 三维数据点与线

      

      

    

  14.2 三维等高线

      

       

  14.3 线框图和曲面图

     

      

      

      

    

     

  14.4 曲面三角剖分

      

       

     

     

      

    

     

            

15、用Basemap可视化地理数据

  15.1 地图投影

  15.2 画一个地图背景

  15.3 在地图上画数据

  15.4 案例:美国加州城市数据

  15.5 案例:地表温度数据

16、用Seaborn做数据可视化

  16.1 Seaborn与Matplotlib

      

       

  16.2 Seanborn图形介绍

    

     

   

     

     

  

     

     

      

  

     

   

  

以上是关于matplotlib数据可视化入门的主要内容,如果未能解决你的问题,请参考以下文章

Python使用matplotlib函数subplot可视化多个不同颜色的折线图自定义数据点的形状自定义折线图的颜色

python使用matplotlib可视化堆积的折线图使用stackplot函数可视化堆积的折线图不同数据在垂直方向堆叠

Python使用matplotlib函数subplot可视化多个不同颜色的折线图在折线图上为每个数据点添加日期数据标签

数据可视化之MATPLOTLIB实战:PLT.POLAR()函数 绘制极线图 (转载)

数据可视化之MATPLOTLIB实战:PLT.POLAR()函数 绘制极线图 (转载)

数据可视化之MATPLOTLIB实战:PLT.POLAR()函数 绘制极线图 (转载)