如何在2 X 3子图中对5个图形进行子图

时间:2019-09-17 17:46:00

标签: python matplotlib

我想在2 x 3个图形的子图网格中绘制5个图形。

如何执行此操作?

第6个子图会有一个额外的空白网格。我想避免这种情况。

1 个答案:

答案 0 :(得分:0)

欢迎您! here之前已经回答了这个问题,但是我将使用gridspec

提供替代解决方案

这5个轴之间有间隙:

import matplotlib.pyplot as plt
import matplotlib as mpl

fig = plt.figure()
spec = mpl.gridspec.GridSpec(ncols=3, nrows=2)

ax1 = fig.add_subplot(spec[0,0])
ax2 = fig.add_subplot(spec[0,1])
ax3 = fig.add_subplot(spec[0,2])
ax4 = fig.add_subplot(spec[1,0])
ax5 = fig.add_subplot(spec[1,1])

gap layout

这是一个更加平衡的5地块布局:

fig = plt.figure()
spec = mpl.gridspec.GridSpec(ncols=6, nrows=2) # 6 columns evenly divides both 2 & 3

ax1 = fig.add_subplot(spec[0,0:2]) # row 0 with axes spanning 2 cols on evens
ax2 = fig.add_subplot(spec[0,2:4])
ax3 = fig.add_subplot(spec[0,4:])
ax4 = fig.add_subplot(spec[1,1:3]) # row 0 with axes spanning 2 cols on odds
ax5 = fig.add_subplot(spec[1,3:5])

better layout