
Matplotlib是一个综合库,用于在Python中创建静态、动画和交互式可视化。在做数据可视化,尤其是三维图像时,是一个不错的选择。
当前环境:Win10、Python 3.8.5、Matplotlib 3.3.2
二维函数绘制
折线图
以下程序是一个最简单($y = x$)的二维函数绘制例程:
1 | #!/usr/bin/env python3 |

上述示例就是一个最素的函数绘制,没有title,没有坐标系说明,没有指定线的颜色,没有函数说明等等。
下面我们以冰淇淋-供需平衡的数据为例,绘制一个全面的:
1 | #!/usr/bin/env python3 |

arange
1 | numpy.arange([start,] stop[, step], dtype=None) |
根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。
| 参数 | 描述 |
|---|---|
| start | 起始值(序列包含起始值),不指定时默认为0 |
| stop | 终止值(不包含) |
| step | 步长,不指定时默认为1 |
| dtype | 指定返回ndarray的数据类型,如果没有指定,则会使用输入数据的类型。 |
color
| 简写 | 颜色 |
|---|---|
| ‘b’ | 蓝色 |
| ‘g’ | 绿色 |
| ‘r’ | 红色 |
| ‘c’ | 青色 |
| ‘m’ | 洋红色 |
| ‘v’ | 黄色 |
| ‘k’ | 黑色 |
| ‘w’ | 白色 |
也可以使用#1f77b4这样的RGB值。
linestyle
| 字符 | Style |
|---|---|
| ‘-‘ | 实线 |
| ‘—‘ | 虚线 |
| ‘-.’ | 点划线 |
| ‘:’ | 点线 |
marker
饼图
1 | #!/usr/bin/env python3 |

subplot(多坐标系)
在同一个界面显示多个坐标系:
1 | #!/usr/bin/env python3 |
效果如下:

三维绘图
绘制3D图像主要有两种方式,一种是利用关键字projection='3d'来实现,另一种则是通过从mpl_toolkits.mplot3d导入对象Axes3D来实现,目的都是生成具有三维格式的对象Axes3D。
1 | #!/usr/bin/env python3 |
1 | #!/usr/bin/env python3 |
散点图
1 | #!/usr/bin/env python3 |

另外,也可以使用meshgrid来快速生成:
1 | #!/usr/bin/env python3 |

meshgrid
meshgrid是一个快速生成坐标矩阵的函数。
以上图为例,生成一个4x4x4的方形矩阵,正方形只需要指定一条边的坐标,长方形也只需要指定3条边的坐标,就可以使用For循环来绘图了,这是一种思路。
还有另外一种思路,这64个点都有x、y、z轴的坐标,所有x轴的坐标存在X里,所有y轴的坐标存在Y里,所以z轴的坐标存在Z里。
scatter函数支持一个一个点的绘制,也支持传入坐标函数的绘制。而meshgrid就是自动根据每边坐标生成坐标矩阵的函数。
折线图
1 | #!/usr/bin/env python3 |

线框图
1 | #!/usr/bin/env python3 |

表面图
1 | #!/usr/bin/env python3 |

Colormap
如上所示,表面图的颜色可以指定cmap的样式来更换颜色映射。