更新时间:2022-04-19 来源:黑马程序员 浏览量:
matplotlib支持向画布的任意位置添加自定义大小的坐标系统,同时显示坐标轴,而不再受规划区域的限制。pyplot模块可以使用axes()函数创建一个Axes类的对象,并将Axes类的对象添加到当前画布中。axes()函数的语法格式如下:
axes(arg=None, projection=None, polar=False, aspect, frame_on, **kwargs)
该函数常用参数的含义如下。
(1)参数arg支持None、4-tuple中任一取值,每种取值的含义如下。
.None:表示使用subplot(111)添加的与画布同等大小的Axes对象。
.4-tuple:由4个浮点型元素(取值范围为0~1)组成的元组(left,bottom,width,height),前两个元素left和bottom分别表示坐标轴左侧和底部的边缘到画布的相对距离,用于确定坐标轴的位置;后两个元素width和height分别表示坐标轴的宽度和高度,用于确定坐标轴的相对大小。
(2)参数projection表示坐标轴的类型,可以是None、'aitoff'、'hammer'、'lambert'、'mollweide'、'polar'或'rectilinear'中的任一取值,也可以使用自定义的类型。
(3)参数plolar表示是否使用极坐标,若设为True,则其作用等价于projection='polar'。
(4)参数aspect表示坐标轴缩放的比例,可接收'auto'、'equal'、num中任一取值。
(5)参数frame_on表示是否绘制每个坐标轴的轴脊。
例如,在距当前画布左侧0.2、画布底部0.5的位置上添加一个宽度为0.3、高度为0.3的坐标系;在距画布左侧0.6、画布底部0.4的位置上添加一个宽度为0.2、高度为0.2的坐标系,具体代码如下。
import matplotlib.pyplot as plt ax = plt.axes((0.2, 0.5, 0.3, 0.3)) ax.plot([1, 2, 3, 4, 5]) ax2 = plt.axes((0.6, 0.4, 0.2, 0.2)) ax2.plot([1, 2, 3, 4, 5]) plt.show()
运行程序,效果如图6-1所示。
图6-1 在画布中添加多个坐标系
从图6-1中可以看出,坐标系的位置和大小都是自定义的。
除此之外,还可以使用Figure类对象的add_axes()方法在当前画布的任意位置添加Axes类对象。