如何增加子图的大小并减小水平间距?

时间:2019-05-07 19:51:42

标签: python matplotlib plot

我想在水平方向上留出较小的间距,以便能够增加支撑物的尺寸,但是我不知道该怎么做

这是我的代码:

# DEFINE FIGURE SIZE
fig, axarr = plt.subplots(6,3,figsize=(30,30))

for i in range(6):

    for ii in range(3):
        #IMAGE
        axarr[i,ii].imshow([[1,2],[2,3]])
        # ADDITIONAL 
        axarr[i,ii].axis("off")
        axarr[i,ii].set_title(str(i), color = 'red')


plt.show()

外观如下:

enter image description here

我试图将图形尺寸更改为150x150,但结果几乎相同(标题不再可见):

enter image description here

1 个答案:

答案 0 :(得分:2)

更改图形尺寸以具有6/3的比例。更一般而言,如果您有Nlines x Ncols个子图,则将要使用Nlines / Ncols比率的图形尺寸。

这是因为imshow()使用an 'equal' aspect ratio by default来确保像素在屏幕上最终变成正方形。这意味着,最初以水平间距很小的矩形形状创建的子图,在不更改图形尺寸的情况下,将其尺寸调整为正方形,从而导致子图之间存在较大的间隙。为避免此问题,请仔细选择图形的大小,以使子图在调用imshow()之前已经是正方形。

width = 5
fig, axarr = plt.subplots(6,3,figsize=(width,width*6/3))

for i in range(6):

    for ii in range(3):
        #IMAGE
        axarr[i,ii].imshow([[1,2],[2,3]])
        # ADDITIONAL 
        axarr[i,ii].axis("off")
        axarr[i,ii].set_title(str(i), color = 'red')


plt.show()

enter image description here