Matplotlib 速查手册


简介

Matplotlib 是 Python 进行数据可视化的工具之一,与之相似的工具有 MATLAB。因为我没有学习过MATLAB,在此就不作比较了。

当然,我写这篇文章的初衷是为了“防蠢”,对于不常用的东西确实容易忘记,为了减少以后的学习成本。本系列的主旨是总结 Matplotlib 中的常用功能,精简出一套适合速查使用的模板,希望该篇文章对于你有所帮助。

对于这篇文章中的不常用函数的特性,我并没有进行特别详细的讲解,如果觉得需要改正/补充可以直接提出修改意见,联系方式见博客主页。

这篇速查笔记主要参考这篇博客的讲解顺序及部分内容,毕竟人家写的实在太好了,在这里进行特别感谢。当然,也参考了一些其他博主的文档,因为实在太多,在这里也一并进行感谢。

PS:现在的官方文档已经很标准了,涵盖了各式各样的图形画法,如果有画不了的,可以去参考官网。

安装

Matplotlib 第三方包下载网址:https://pypi.org/project/matplotlib/#files

pip 安装

1
pip install 第三方包链接(matplotlib)

PS:可能会存在一些其他的依赖包(numpy等)

基本画图流程

1.基本框架

对于使用 Matplotlib 进行画图,是有一个基本流程的,但是由于网上的资料过于庞杂(面对一个初学者来说,并不知道如何选择),在不考虑时间复杂度即其语句歧义的主旨下,我选择了一个基本流程:

  • figure 相当于一个画板,具体来说就是程序运行时跳出来的窗口。当然,你可以在一个程序中创建多个画板。
  • axis 可以理解为一个画纸,一个 figure 上可以有一个或多个 axis
  • matplotlib.pyplot 可以理解为画笔,例如:plt.plot 可以画连线图, plt.scatter 可以用来画散点图。

从上述 画板、画纸、画笔 的关系,其实就可以大概看出 Matplotlib 的整体设计结构。

但是,话说回来,对于只有一张图的时候,并不会进行 figure,axis 的创建,往往都是plt.plot()直接画,因为这样效率高,这里后续代码会直接体现出来。

2.绘画流程

对于使用 Matplotlib 绘制图像,先说明一下大致流程:

  • 准备好所要绘制的数据;
  • 使用 matplotlib 中对应的图像工具进行绘制描点及备注;
  • 将图片显示出来

头文件导入方式

方式1:

1
2
import matplotlib.pyplot as plt
import numpy as np

方式2:不推荐

1
from pylab import *

基础样例

先在一张图上绘制 正弦 、余弦 图像,然后再进行逐步分析:

1.头文件

1
2
import matplotlib.pyplot as plt
import numpy as np

2.准备数据

1
X = np.linspace(-np.pi, np.pi, 300)

​ X 是一个 numpy 数组,包含了从 −π 到 +π 等间隔的 300 个值。

1
2
C = np.cos(X)
S = np.sin(X)

​ C 和 S 则分别是这 300 个值对应的余弦和正弦函数值组成的 numpy 数组。

3.绘图并展示

1
2
3
4
plt.plot(X, C)
plt.plot(X, S)

plt.show()

属性:

Matplotlib 是一个对十分人性化的包,在绘图时很多参数都默认配置好了。当然,你依旧可以进行调整大多数的参数:图片大小和分辨率(dpi)、线宽、颜色、风格、坐标轴、坐标轴以及网格的属性、文字与字体属性等。

参数种类及绘图工具

1.plt.plot() 基本属性

有关点(marker)种类 标签(记得加单引号)
像素 . (默认)
圆形 o
上三角 ^
下三角 v (小写)
左三角 <
右三角 >
方形 s
加号 +
叉形 x (小写)
菱形 D
细菱形 d
三脚架朝下 1 (像’丫’)
三脚架朝上 2
三脚架朝左 3
三脚架朝右 4
六角形 h
旋转六角形 H
五角形 p
垂直线 |
水平线 _
有关颜色(color 简写为 c)的种类 标签(记得加单引号)
蓝色 b
绿色 g
红色 r
墨绿色 c
红紫色 m
黄色 y
黑色 k
白色 w
有关线形(linestyle 简写为 ls)的种类 标签(记得加单引号)
实线 - (减号)
虚线 – (减号)
虚点线 -.
点线 :
.

2.设置 “图像 、x轴、y轴” 的标题

图种

1.连线图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import matplotlib.pyplot as plt
import numpy as np

x_list = np.linspace(-100, 100, 10)
y_list = np.linspace(-100, 100, 10)
x_list[9] = 0
y_list[9] = 50

# plt.plot() 基本属性
plt.plot(x_list, # x 轴坐标
y_list, # y 轴坐标
marker = '<', # 点型
color = 'b', # 颜色
linestyle = '-', # 线型
linewidth = 1, # 线段粗细
label = 'L_1' # 线段名称,绘制图例时要用
)

plt.show()

备注:

对于plt.plot()属性部分 x_listy_list 这两个信息必填,且个数必须相等,其余均可不填。

如何保存图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import matplotlib.pyplot as plt
import numpy as np

X = np.linspace(-np.pi, np.pi, 300)

C = np.cos(X)
S = np.sin(X)

plt.plot(X, C)
plt.plot(X, S)

# 保存图片
plt.savefig("Cos&Sin.png", # 填写保存地址及图片名称
transparent=True, # 图片背景是否透明
format='png') # 图片格式

plt.show()

参考资料

Matplotlib 中文文档:https://www.matplotlib.org.cn/

Matplotlib 教学视频:https://morvanzhou.github.io/tutorials/data-manipulation/plt/

参考博客:https://liam.page/2014/09/11/matplotlib-tutorial-zh-cn/