参考文献:matplotlib中文网 https://www.matplotlib.org
需求一:利用自定义布局的GridSpec实例,在画布上创建如图所示的坐标系实例(见运行结果展示图)
创建画布:
fig = plt.figure()
创建规划图:
spec = gridspec.GridSpec(3, 4, figure=fig) # 创建一个3行4列的网格规划图的。这个网格规划图可以用来在一个画布上创建多个子图
创建对应坐标系:
ax1 = fig.add_subplot(spec[0, :]) # 在第1行绘制坐标系
ax2 = fig.add_subplot(spec[1, 0:2]) # 在第二行的第一、二列绘制坐标系
ax3 = fig.add_subplot(spec[1, 2:]) # 在第二行第三、四列绘制坐标系
ax4 = plt.subplot(spec[2, 0], projection='polar') # 在第三行第0列绘制极坐标
ax5 = fig.add_subplot(spec[2, 1:]) # 在第三行第二、三、四列绘制坐标系
设计Y轴:
for ax in [ax1, ax2, ax3, ax4, ax5]:
ax.set_yticks([0.25 * i for i in range(5)])
最终效果:
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
# 1.创建画布实例
fig = plt.figure()
# 2.创建“区域规划图”实例
spec = gridspec.GridSpec(3, 4, figure=fig) # 创建一个3行4列的网格规划图的。这个网格规划图可以用来在一个画布上创建多个子图
# 3.根据给定的“区域规划图”,创建对应的坐标系实例
ax1 = fig.add_subplot(spec[0, :]) # 在第1行绘制坐标系
ax2 = fig.add_subplot(spec[1, 0:2]) # 在第二行的第一、二列绘制坐标系
ax3 = fig.add_subplot(spec[1, 2:]) # 在第二行第三、四列绘制坐标系
ax4 = plt.subplot(spec[2, 0], projection='polar') # 在第三行第0列绘制极坐标
ax5 = fig.add_subplot(spec[2, 1:]) # 在第三行第二、三、四列绘制坐标系
# 设置y轴的刻度
for ax in [ax1, ax2, ax3, ax4, ax5]:
ax.set_yticks([0.25 * i for i in range(5)])
# 使用了一个for循环来遍历所有的子图(除了极坐标图),并使用set_yticks方法来设置y轴的刻度
plt.show()