Python Matplotlib:3个打印在两行中,单个图像居中

Python Matplotlib:3个打印在两行中,单个图像居中,python,matplotlib,Python,Matplotlib,我有一个3位数的图。我想有两行图像,上面一行两个绘图,下面一个绘图。我需要将第二行的单个绘图居中对齐 fig, ax = plt.subplots(nrows=2, ncols=2) x = np.arange(0.01,1.01,0.01) y = np.arange(0.01,1.01,0.01) X,Y = np.meshgrid(x, y) # grid of point Z = 1/((1/X)+(1/Y)-1) F = Y / X values = [0.3, 0.5, 0.8, 1

我有一个3位数的图。我想有两行图像,上面一行两个绘图,下面一个绘图。我需要将第二行的单个绘图居中对齐

fig, ax = plt.subplots(nrows=2, ncols=2)
x = np.arange(0.01,1.01,0.01)
y = np.arange(0.01,1.01,0.01)
X,Y = np.meshgrid(x, y) # grid of point
Z = 1/((1/X)+(1/Y)-1)
F = Y / X
values = [0.3, 0.5, 0.8, 1.0, 1.3, 1.5, 2.0, 3.0, 5.0, 10.0]

#Plot 0
ax[0,0].set_aspect('equal')
CS = ax[0,0].contour(X,Y,Z,np.arange(0.1,1.0,0.1),colors='black',linewidths=0.7)
ax[0,0].clabel(CS, fontsize=12, fmt='%1.1f', inline=1)
CS = ax[0,0].contour(X,Y,F,values,colors='blue', linewidths=0.7)
ax[0,0].clabel(CS, fontsize=12, fmt='%1.1f', inline=1)

#Plot 1
ax[0,1].set_aspect('equal')
CS = ax[0,1].contour(X,Y,Z,np.arange(0.1,1.0,0.1),colors='black',linewidths=0.7)
ax[0,1].clabel(CS, fontsize=12, fmt='%1.1f', inline=1)
CS = ax[0,1].contour(X,Y,F,values,colors='blue', linewidths=0.7)
ax[0,1].clabel(CS, fontsize=12, fmt='%1.1f', inline=1)

#Plot 2
ax[1,0].set_aspect('equal')
CS = ax[1,0].contour(X,Y,Z,np.arange(0.1,1.0,0.1),colors='black',linewidths=0.7)
ax[1,0].clabel(CS, fontsize=12, fmt='%1.1f', inline=1)
CS = ax[1,0].contour(X,Y,F,values,colors='blue', linewidths=0.7)
ax[1,0].clabel(CS, fontsize=12, fmt='%1.1f', inline=1)
例如,绘图2位于第二行,我希望它位于第二行的中心,但大小与其他两个绘图相同

提前感谢

您可以使用。这里的技巧是创建一个规则的网格,但不是在每个单元格中都有一个绘图。例如,在本例中,我创建了一个2x4单元格网格。每个绘图跨越2个单元格。在第一行,我有两个图(2x2个单元格)。在第二行,我有一个空单元格、一个绘图(1x2单元格)和另一个空单元格

import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(2, 4)
gs.update(wspace=0.5)
ax1 = plt.subplot(gs[0, :2], )
ax2 = plt.subplot(gs[0, 2:])
ax3 = plt.subplot(gs[1, 1:3])
plt.show()

如果您想得到回复,您必须在这方面付出努力。这不是一个免费的代码编写服务。对不起,不是在寻找“免费代码”。我用我的部分代码编辑,我撤回了我的投票。谢谢。@user2938093让我知道这是否对你更好完美!非常感谢。