Python 对具有不同注释的子地块强制执行相同的大小
我有一个数字,一行有3个子图。只有左侧子地块在y轴上有轴标签和记号标签,只有右侧子地块旁边有颜色栏。因此,包括注释的三个子图的宽度不相同。现在我想强制三个子图(比如说imshow)中实际绘图区域的大小相同。现在我所能做的就是使包括注释在内的三个子图的大小相同(这必然导致不同的绘图大小),或者在中使用Python 对具有不同注释的子地块强制执行相同的大小,python,matplotlib,subplot,Python,Matplotlib,Subplot,我有一个数字,一行有3个子图。只有左侧子地块在y轴上有轴标签和记号标签,只有右侧子地块旁边有颜色栏。因此,包括注释的三个子图的宽度不相同。现在我想强制三个子图(比如说imshow)中实际绘图区域的大小相同。现在我所能做的就是使包括注释在内的三个子图的大小相同(这必然导致不同的绘图大小),或者在中使用a,b,c gridspec.gridspec(1,3,宽度比=[a,b,c]) 直到我得到满意的结果。有没有办法自动找到这样的a、b、c,或者以其他方式固定绘图大小 下面是一个最小的示例,其中第三个
a
,b
,c
gridspec.gridspec(1,3,宽度比=[a,b,c])
直到我得到满意的结果。有没有办法自动找到这样的a
、b
、c
,或者以其他方式固定绘图大小
下面是一个最小的示例,其中第三个图像明显小于前两个图像:
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
field = np.random.rand(800,800)
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(18,6))
fig.subplots_adjust(hspace=0.1,wspace=0.1)
gs = gridspec.GridSpec(1, 3)
ax = plt.subplot(gs[0])
plt.imshow(field)
plt.xlabel("$x$")
plt.ylabel("$y$")
ax = plt.subplot(gs[1])
plt.imshow(field)
plt.xlabel("$x$")
plt.ylabel("")
ax = plt.subplot(gs[2])
sc = ax.imshow(field, vmin=0.0, vmax=1.0)
plt.xlabel("$x$")
plt.ylabel("")
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="2%", pad=0.05)
cbar = plt.colorbar(sc, orientation = 'vertical', cax=cax)
cbar.set_label("colors")
cbar.set_ticks([0.0,1.0])
plt.savefig('test.png', bbox_inches='tight')
你能提供一个完整的例子吗?我的期望是,你想要的应该是默认行为,你描述的很难做到。你能提供一个完整的最小示例吗?我的期望是,你想要的应该是默认的行为,你描述的很难做到。