描述:笔记

目录:

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

      

python图表x轴重叠 matplotlib x轴标签重叠_图例

  1.2 设置绘图样式

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_02

      

  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模式。

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_03

  1.4 将图形保存为文件

      

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_04

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_05

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_06

2、两种画图接口

  2.1 MATLAB风格接口

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

      缺点:不方便切换子图。

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_07

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_08

  2.2 面向对象接口

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

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_09

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

3、简易线形图

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

      

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_10

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_11

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

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_12

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_图例_13

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_14

 

      

 

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_15

       

python图表x轴重叠 matplotlib x轴标签重叠_图例_16

 

 

     

  3.3 设置图形标签

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_17

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_18

 

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_19

 

 

       matplotlib陷阱

         

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_20

 

       

4、简易散点图

  4.1 用plt.plot画散点图

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_21

       

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_22

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_23

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_24

 

 

 

  4.2 用plt.scatter画散点图

      

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_25

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_26

 

 

 

 

 

 

 

  4.3 plot与scatter:效率对比

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_27

 

 

 

5、可视化异常处理

  5.1 基本误差线

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_28

 

 

 

  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轴将通过等高线的等级来表示。

    

python图表x轴重叠 matplotlib x轴标签重叠_图例_29

 

 

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

     

python图表x轴重叠 matplotlib x轴标签重叠_图例_30

 

 

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

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_31

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_图例_32

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

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

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_33

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_34

       

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

  7.1 频次直方图

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_35

       

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_36

 

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

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

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

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_37

 

   7.3 核密度估计

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

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_38

           

8、配置图例  

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

  8.1 选择图例显示的元素

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

    

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_39

 

 

    

python图表x轴重叠 matplotlib x轴标签重叠_图例_40

 

 

    

python图表x轴重叠 matplotlib x轴标签重叠_数据_41

 

 

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

    

python图表x轴重叠 matplotlib x轴标签重叠_数据_42

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_43

        

  8.2 同时显示多个图例

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

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_44

 

       

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_45

     

9、配置颜色条

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

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

    

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_46

  9.1 配置颜色条

     

python图表x轴重叠 matplotlib x轴标签重叠_图例_47

 

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

 

10、多子图

  10.1 plt.axes:手动创建子图

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

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

     

python图表x轴重叠 matplotlib x轴标签重叠_数据_48

      

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_49

  10.2 plt.subplot:简易网格子图

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_50

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_51

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_52

      

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

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_53

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_图例_54

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_55

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

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

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

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_56

  

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_57

 

 

11、文字与注释

  11.1 plt.text()

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

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

  11.2 坐标变换与文字位置

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_58

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_图例_59

  11.3 箭头与注释

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

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

      

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_60

12、自定义坐标轴刻度

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

  12.1 主要刻度与次要刻度     

 

 

 

 

  12.2 隐藏刻度与标签

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_61

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_62

  12.3 增减刻度数量

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_63

  12.4 花哨的刻度格式

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_64

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_65

 

 

        

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_66

 

 

 

      

  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 样式表

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_67

 

 

        

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_68

14、用Matplotlib画三维图

    

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_69

  

python图表x轴重叠 matplotlib x轴标签重叠_图例_70

 

 

     

     

  14.1 三维数据点与线

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_71

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_72

 

 

    

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_73

 

 

 

  14.2 三维等高线

      

python图表x轴重叠 matplotlib x轴标签重叠_数据_74

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_75

 

 

 

  14.3 线框图和曲面图

     

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_76

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_77

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_78

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_79

 

 

 

    

python图表x轴重叠 matplotlib x轴标签重叠_数据_80

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_81

 

  14.4 曲面三角剖分

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_82

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_83

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_数据_84

 

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_85

          

python图表x轴重叠 matplotlib x轴标签重叠_数据_86

 

     

python图表x轴重叠 matplotlib x轴标签重叠_图例_87

            

15、用Basemap可视化地理数据

  15.1 地图投影

  15.2 画一个地图背景

  15.3 在地图上画数据

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

  15.5 案例:地表温度数据

16、用Seaborn做数据可视化

  16.1 Seaborn与Matplotlib

      

python图表x轴重叠 matplotlib x轴标签重叠_图例_88

 

 

       

python图表x轴重叠 matplotlib x轴标签重叠_数据_89

  16.2 Seanborn图形介绍

    

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_90

 

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_数据_91

 

 

   

python图表x轴重叠 matplotlib x轴标签重叠_图例_92

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_图例_93

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_94

 

 

  

python图表x轴重叠 matplotlib x轴标签重叠_数据_95

     

python图表x轴重叠 matplotlib x轴标签重叠_图例_96

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_97

 

 

      

python图表x轴重叠 matplotlib x轴标签重叠_python图表x轴重叠_98

  

python图表x轴重叠 matplotlib x轴标签重叠_坐标轴_99

 

 

 

     

python图表x轴重叠 matplotlib x轴标签重叠_图例_100

 

 

   

python图表x轴重叠 matplotlib x轴标签重叠_图例_101

  

python图表x轴重叠 matplotlib x轴标签重叠_图例_102