将颜色条的大小调整为图形的大小

时间:2019-04-26 08:22:45

标签: python matplotlib

我的目标是将三个图绘制为子图,并对其中三个仅使用一个颜色条,我尝试通过制作一个具有4个子图的图形,如以下代码所示:

fig=plt.figure()
ax1=plt.subplot(1,3,1)
im=ax1.contourf(  MC, 50,vmax=Max_abs,vmin=Min_abs)
x0,x1 = ax1.get_xlim()
y0,y1 = ax1.get_ylim()
ax1.set_aspect((x1-x0)/(y1-y0))
ax2=plt.subplot(1,3,2,aspect=1)
im2=ax2.contourf(  averagedM, 50,vmax=Max_abs,vmin=Min_abs)
ax3=plt.subplot(1,3,3,aspect=1)
im3=ax3.contourf( residualM, 50,vmax=Max_abs,vmin=Min_abs)


#cax = divider.append_axes("right", size="5%", pad=0.05)
im4 = plt.colorbar(im3, ax=[ax1, ax2, ax3])

#cb.ax.set_visible(True)
plt.show()

矩阵M1,M2和M3以前是在代码中计算出来的,但是对于我的问题,我猜并不是很重要。问题是颜色条不适合其余图的大小,已经有一些关于此主题的类似问题,但这些问题都不对我的代码有用,因此我想知道如何在此调整颜色条具体情况。

谢谢enter image description here

1 个答案:

答案 0 :(得分:1)

因为您将子图的宽高比固定为1,所以子图不会适应图形的大小,而颜色栏却可以。如果您不这样做,则子图将与颜色条一样高(但是,不再是二次方的了……)。

反过来,您可以简单地定义图形大小,以适合所需的三个二次图和一个颜色条的长宽比,例如:

fig = plt.figure(figsize=(12, 3))