Python 更改子地块图形中绘图的大小

Python 更改子地块图形中绘图的大小,python,matplotlib,Python,Matplotlib,我创建了一个具有4个子图(2 x 2)的图形,其中3个子图的类型为imshow,另一个子图的类型为errorbar。每个imshow图的右侧都有一个色条。我想调整我的第三个绘图的大小,使图表的区域正好位于其上方的区域之下(不带颜色条) 例如(这就是我现在拥有的): 如何调整第三个绘图的大小 关于要调整轴实例的尺寸,需要使用该方法。这也适用于子地块轴。要获取轴的当前位置/尺寸,请使用返回Bbox实例的方法。对我来说,在概念上更容易与位置交互,即[左、下、右、上]限制。要从Bbox访问此信息,请单

我创建了一个具有4个子图(2 x 2)的图形,其中3个子图的类型为
imshow
,另一个子图的类型为
errorbar
。每个
imshow
图的右侧都有一个色条。我想调整我的第三个绘图的大小,使图表的区域正好位于其上方的区域之下(不带颜色条)

例如(这就是我现在拥有的):

如何调整第三个绘图的大小


关于

要调整轴实例的尺寸,需要使用该方法。这也适用于子地块轴。要获取轴的当前位置/尺寸,请使用返回Bbox实例的方法。对我来说,在概念上更容易与位置交互,即[左、下、右、上]限制。要从Bbox访问此信息,请单击属性

在这里,我将这些方法应用于类似于上面示例的内容:

import matplotlib.pyplot as plt
import numpy as np

x,y = np.random.rand(2,10)
img = np.random.rand(10,10)

fig = plt.figure()
ax1 = fig.add_subplot(221)
im = ax1.imshow(img,extent=[0,1,0,1])

plt.colorbar(im)
ax2 = fig.add_subplot(222)
im = ax2.imshow(img,extent=[0,1,0,1])
plt.colorbar(im)

ax3 = fig.add_subplot(223)
ax3.plot(x,y)
ax3.axis([0,1,0,1])

ax4 = fig.add_subplot(224)
im = ax4.imshow(img,extent=[0,1,0,1])
plt.colorbar(im)

pos4 = ax4.get_position().bounds
pos1 = ax1.get_position().bounds
# set the x limits (left and right) to first axes limits
# set the y limits (bottom and top) to the last axes limits
newpos = [pos1[0],pos4[1],pos1[2],pos4[3]]

ax3.set_position(newpos)

plt.show()
您可能会觉得这两个绘图看起来并不完全相同(在我的渲染中,左侧或xmin位置并不完全正确),因此可以随意调整位置,直到获得所需的效果