参考来源:《Python数据科学手册》第4章
URL:https://jakevdp.github.io/PythonDataScienceHandbook/
描述:笔记
目录:
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图形介绍