- 1.简单的折线图
- 调整折线图:线条颜色和风格
- 调整折线图:坐标轴范围
- 折线图标签
- 额外内容:Matplotlib 的坑
- 2.简单散点图
- 使用 plt.plot 绘制散点图
- 使用plt.scatter绘制散点图
- plot 和 scatter 对比:性能提醒
- 3.误差可视化
- 基础误差条
- 连续误差
- 4.密度和轮廓图
- 三维可视化函数
- 5.直方图,分桶和密度
- 二维直方图和分桶
- plt.hist2d:二维直方图
- plt.hexbin:六角形分桶
- 核密度估计
- 二维直方图和分桶
- 6.自定义图标图例
- 选择设置图例的元素
- 散点大小的图例
- 多重图例
- 7.个性化颜色条
- 自定义颜色条
- 选择色图
- 颜色限制和扩展
- 离散颜色条
- 例子:手写数字
- 自定义颜色条
- 8.多个子图表
- plt.axes:手动构建子图表
- plt.subplot:简单网格的子图表
- plt.subplots:一句代码设置所有网格子图表
- plt.GridSpec:更复杂的排列
- 9.文本和标注
- 例子:节假日对美国出生率的影响
- 转换和文本位置
- 箭头和标注
- 10.自定义刻度
- 主要的和次要的刻度
- 隐藏刻度和标签
- 减少或增加刻度的数量
- 复杂的刻度格式
- Formatter 和 Locator 总结
- 11.在 matplotlib 中创建三维图表
- 三维的点和线
- 三维轮廓图
- 框线图和表面图
- 表面三角剖分
- 例子:绘制莫比乌斯环
导读
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
以下内容来自Github,为《PythonDataScienceHandbook[1]》(Python 数据科学手册[2])第四章Matplotlib介绍部分。全部内容都在以下环境演示通过:
numpy:1.18.5
pandas:1.0.5
matplotlib:3.2.1
1.简单的折线图
对于图表来说,最简单的莫过于作出一个单一函数 的图像。本节中我们首先来介绍创建这种类型图表。本节和后续小节中,我们都会使用下面的代码将我们需要的包载入到 notebook 中:
import matplotlib.pyplot as plt
plt.style.use( seaborn-whitegrid )
import numpy as np
对于所有的 Matplotlib 图表来说,我们都需要从创建图形和维度开始。图形和维度可以使用下面代码进行最简形式的创建:
fig = plt.figure()
ax = plt.axes()
在 Matplotlib 中,图形(类plt.Figure的一个实例)可以被认为是一个包括所有维度、图像、文本和标签对象的容器。维度(类plt.Axes的一个实例)就是你上面看到的图像,一个有边界的格子包括刻度和标签,最终还有我们画在上面的图表元素。在本书中,我们会使用变量名fig来指代图形对象,以及变量名ax来指代维度变量。
一旦我们创建了维度,我们可以使用ax.plot方法将数据绘制在图表上。下面是一个简单的正弦函数图形:
fig = plt.figure()ax = plt.axes()x = np.linspace(0, 10, 1000)ax.plot(x, np.sin(x));
同样的,我们可以使用 pylab 接口(MATLAB 风格的接口)帮我们在后台自动创建这两个对象:
plt.plot(x, np.sin(x));
如果我们需要在同一幅图形中绘制多根线条,只需要多次调用plot
函数即可:
plt.plot(x, np.sin(x))plt.plot(x, np.cos(x));
这就是在 Matplotlib 中绘制简单函数图像的所有接口了。下面我们深入了解一下控制坐标轴和线条外观的细节。
调整折线图:线条颜色和风格
你可能第一个想到需要进行调整的部分就是线条的颜色和风格。plt.plot()函数接受额外的参数可以用来指定它们。通过指定color关键字参数可以调整颜色,这个字符串类型参数基本上能用来代表任何你能想到的颜色。可以通过多种方式指定颜色参数:
所有 HTML 颜色名称可以在这里[3]找到。
plt.plot(x, np.sin(x - 0), color= blue ) # 通过颜色名称指定
plt.plot(x, np.sin(x - 1), color= g ) # 通过颜色简写名称指定
plt.plot(x, np.sin(x - 2), color= 0.75 ) # 介于0-1之间的灰阶值
plt.plot(x, np.sin(x - 3), color= #FFDD44 ) # 16进制的RRGGBB值
plt.plot(x, np.sin(x - 4), color=(1.0,0.2,0.3)) # RGB元组的颜色值,每个值介于0-1
plt.plot(x, np.sin(x - 5), color= chartreuse ); # 能支持所有HTML颜色名称值
如果没有指定颜色,Matplotlib 会在一组默认颜色值中循环使用来绘制每一条线条。类似的,通过linestyle关键字参数可以指定线条的风格: