matplotlib 子图形的间距调整

hec6srdp  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(163)

我想在不使用constrained_layout=True的情况下更改图中hspace的大小。
下面是我的代码:

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np

fig = plt.figure()
# fig = plt.figure(constrained_layout=True)
GridSpec = gridspec.GridSpec(ncols=1, nrows=2, figure= fig, hspace=0.9)

subfigure_1= fig.add_subfigure(GridSpec[0,:])
subplots_1= subfigure_1.subplots(1,1)

subfigure_2= fig.add_subfigure(GridSpec[1,:])
subplots_2= subfigure_2.subplots(1,1)

plt.show()

使用constrained_layout=True,它可以工作,但有时我会遇到其他问题,我不希望将此设置设置为True。(此外,似乎constrained_layout=True禁用gridSpec上的width_ratios

smdncfj3

smdncfj31#

你可以使用hspace来修改它,但是代码中的fig.add_subfigure.suplots会混淆gridspec如何构造图形和应用hspace,你可以直接使用fig.add_subplot来调用gridspec(我使用hspace=0.1是为了让修改更明显):

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure()
GridSpec = gridspec.GridSpec(ncols=1, nrows=2, figure=fig, hspace=0.1)

subplots_1 = fig.add_subplot(GridSpec[0, :])
subplots_2 = fig.add_subplot(GridSpec[1, :])

plt.show()

相关问题