更新时间:2022年04月04日10时57分 来源:传智教育 浏览次数:
使用pyplot的subplot()函数可以在规划好的某个区域中绘制单个子图,subplot()函数的语法格式如下:
subplot(nrows, ncols, index, projection, polar, sharex, sharey, label, **kwargs)
该函数的常用参数含义如下。
·nrows:表示规划区域的行数。
·ncols:表示规划区域的列数。
·index:表示选择区域的索引,默认从1开始编号。
·projection:表示子图的投影类型,可以为None、'aitoff'、'hammer'、'lambert'、'mollweide'、'polar'、'rectilinear'中任一取值,其中默认值None代表使用'rectilinear'直线投影。
·polar:表示是否使用极坐标,默认值为False。若参数polar设为True,则作用等同于projection='polar'。
·sharex, sharey:表示是否共享子图的x轴或y轴。
参数nrows、ncols、index既支持单独传参,也支持以一个3位整数(每位整数必须小于10)的形式传参。例如,subplot(235)与subplot(2,3,5)是等价的。
subplot()函数会返回一个Axes类的子类SubplotBase对象。
需要说明的是,Figure类对象可以使用add_subplot()方法绘制单子图,此方式与subplot()函数的作用是等价的。例如,将画布规划成3x2的矩阵区域,并在索引为6的区域中绘制子图;再次将画布规划成3x1的矩阵区域,并在索引为2的区域中绘制子图,代码如下。
# 通过窗口的形式显示图片,很好地体现子图与整个画布的位置关系 import matplotlib.pyplot as plt # 画布被规划为3x2的矩阵区域,之后在索引为6的区域中绘制子图 ax_one = plt.subplot(326) ax_one.plot([1, 2, 3, 4, 5]) # 画布被规划为3x1的矩阵区域,之后在索引为2的区域中绘制子图 ax_two = plt.subplot(312) ax_two.plot([1, 2, 3, 4, 5]) plt.show()
运行程序,效果如图5-2所示。
图5-2 连续绘制的两个子图