【问题标题】:Adjust the size of the colorbar to the size of a graph [duplicate]将颜色条的大小调整为图形的大小[重复]
【发布时间】:2019-09-15 17:31:52
【问题描述】:

我的目标是将三个图形绘制为子图,并为其中三个仅使用一个颜色条,我已经尝试通过制作一个具有 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,但我想这对我的问题来说不是很重要。问题是颜色条不适合其余图的大小,关于这个主题已经提出了一些类似的问题,但它们都对我的代码没有用,所以我想知道如何调整颜色条在这个具体情况。

谢谢

【问题讨论】:

标签: python matplotlib


【解决方案1】:

因为您将子图的纵横比固定为 1,所以子图不会调整为图形的大小,但颜色条会。如果您不这样做,则子图将与颜色条一样高(但不再是二次方,当然......)。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多