更新时间:2022-04-07 来源:黑马程序员 浏览量:
使用pyplot的subplot2grid()函数可以将整个画布规划成非等分布局的区域,并可在选中的某个区域中绘制单个子图,subplot2grid()函数的语法格式如下:
subplot2grid(shape, loc, rowspan=1, colspan=1, fig=None, **kwargs)
该函数常用参数的含义如下。
·shape:表示规划的区域结构,它是一个包含两个整型数据的元组,其中第1个元素表示规划区域的行数,第2个元素表示规划区域的列数。
·loc:表示选择区域的位置,它是一个包含两个整型数据的元组,其中第1个元素表示子图所在的行数(行数从0开始),第2个元素表示子图所在的列数(列数从0开始)。
·rowspan:表示向下跨越的行数,默认为1。
·colspan:表示向右跨越的列数,默认为1。
·fig:表示放置子图的画布,默认为当前画布。
例如,将画布规划成2x3的矩阵区域,并在第0行第2列的区域中绘制子图;再次将画布规划成2x3的矩阵区域,并在第1行第1~2列的区域中绘制子图,代码如下:
import matplotlib.pyplot as plt # 画布被规划成2x3的矩阵区域,之后在第0行第2列的区域中绘制子图 axl = plt.subplot2grid((2, 3), (0, 2)) axl.plot([1, 2, 3, 4, 5]) # 画布被规划成2x3的矩阵区域,之后在第1行第1~2列的区域中绘制子图 ax2 = plt.subplot2grid((2, 3), (1, 1), colspan=2) ax2.plot([1, 2, 3, 4, 5]) plt.show()
运行程序,效果如图5-9所示。
图5-9 非等分布局的子图
图5-9中包含两个大小不同的图表。由图5-9可知,第1个图表位于画布的右下方,图表的宽度占画布宽度的三分之一,高度占画布高度的二分之一;第2个图表位于画布的右下方,图表的宽度占画布的三分之二,高度占画布高度的二分之一。