Matplotlib fig.add_axes():绘制坐标系(附带实例)
有时可能想在图形中的特定位置上添加坐标系,而不是由 Matplotlib 自己决定将坐标系放在哪里。此时需要先使用 pyplot 模块中的 figure() 函数创建一个空白图形,然后使用 Figure 对象的 add_axes() 方法在图形中添加坐标系。
add_axes() 方法的第一个参数是一个包含 4 个元素的元组,它们分别表示坐标系与图形左边界和下边界之间的距离,以及坐标系的宽度和高度。将整个图形的宽度和高度看作 1,4 个元素都是基于图形整体尺寸的比值,都表示为小数形式。
下面的代码将控制坐标系位置和大小的 4 个值存储到一个变量中,然后将该变量作为 add_axes() 方法的参数:

图 1 灵活指定坐标系的位置
如果想让坐标系显示在图形的正中间,则需要分别使用 1 减去元组中的第 3 个元素和第 4 个元素的值,然后将结果除以 2,得到的就是第 1 个元素和第 2 个元素的值。
将上面的代码修改为以下形式,可将坐标系放置到图形的正中间:

图 2 将坐标系放置到图形的正中间
add_axes() 方法的第一个参数是一个包含 4 个元素的元组,它们分别表示坐标系与图形左边界和下边界之间的距离,以及坐标系的宽度和高度。将整个图形的宽度和高度看作 1,4 个元素都是基于图形整体尺寸的比值,都表示为小数形式。
下面的代码将控制坐标系位置和大小的 4 个值存储到一个变量中,然后将该变量作为 add_axes() 方法的参数:
import matplotlib.pyplot as plt rect = 0.1, 0.1, 0.6, 0.6 fig = plt.figure() ax = fig.add_axes(rect) plt.show()将创建如图所示的坐标系:

图 1 灵活指定坐标系的位置
如果想让坐标系显示在图形的正中间,则需要分别使用 1 减去元组中的第 3 个元素和第 4 个元素的值,然后将结果除以 2,得到的就是第 1 个元素和第 2 个元素的值。
将上面的代码修改为以下形式,可将坐标系放置到图形的正中间:
import matplotlib.pyplot as plt rect = 0.2, 0.2, 0.6, 0.6 fig = plt.figure() ax = fig.add_axes(rect) plt.show()如下图所示:

图 2 将坐标系放置到图形的正中间