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的样式来更换颜色映射。