大家好,我是执念斩长河,一个刚刚学习python画图的学渣。今天做到了一道课后习题,说“请简述subplot(),subplots()和subplot2grid()函数的区别”.特此写篇博文。
1、规范作答
- subplot函数是在规划好的某个区域中绘制但个子图。
- subplots函数可以在规划好的所有区域中一次绘制多个子图
- subplot2grid函数可以将整个画布规划成非等分布局的区域,并可在选中的某个区域中绘制子图
举例:subplot()函数
import matplotlib.pyplot as plt
data = [i for i in range(1,6)]
# 画布被规划为3*2的矩阵区域,之后在索引为6的区域中绘制子图
ax_one = plt.subplot(326)
ax_one.plot(data)
# 画布被规划为3*1 的矩阵区域,之后在索引为2的区域中绘制子图
ax_two = plt.subplot(312)
ax_two.plot(data)
plt.show()
举例:subplots()函数
import matplotlib.pyplot as plt
# 将画布划分为2*2的等分区域
fig, ax_arr = plt.subplots(2,2)
# 获取ax_arr 数组第1行第0列的元素,也就是第3个区域
ax_thr = ax_arr[1,0]
ax_thr.plot([1,2,3,4,5])
举例:subplot2grid()函数
import matplotlib.pyplot as plt
data = [i for i in range(1,6)]
# 画布被规划成2*3的矩阵区域,之后在第0行第2列的区域中绘制子图
ax1 = plt.subplot2grid((2,3),(0,2))
ax1.plot(data)
# 画布被规划成2*3的矩阵区域,之后在第1行第1-2列的区域中绘制子图
ax2 = plt.subplot2grid((2,3),(1,1),colspan=2)
ax2.plot(data)
plt.show()
总结&后记
在我看来,三个记住一个就行了,虽然它们存在即合理。但是都可以通过变化构思成另一个函数,无须都要记忆。