【Python】matplotlib中pyplot.subplots_adjust参数含义的理解

官方文档1

def subplots_adjust(self, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
	'''
	left = 0.125  # the left side of the subplots of the figure
	right = 0.9   # the right side of the subplots of the figure
	bottom = 0.1  # the bottom of the subplots of the figure
	top = 0.9     # the top of the subplots of the figure
	wspace = 0.2  # the amount of width reserved for space between subplots,
	              # expressed as a fraction of the average axis width
	hspace = 0.2  # the amount of height reserved for space between subplots,
	              # expressed as a fraction of the average axis height
	'''

参数含义:
left, right, bottom, top:子图所在区域的边界。
当值大于1.0的时候子图会超出figure的边界从而显示不全;值不大于1.0的时候,子图会自动分布在一个矩形区域(下图灰色部分)。
要保证left < right, bottom < top,否则会报错。
如下图:
left, right, top, bottom
wspace, hspace:子图之间的横向间距、纵向间距分别与子图平均宽度、平均高度的比值。
在所有子图都不超出left, right, top, bottom所围区域的条件下,子图的长宽比不变,而是按比例缩小,所以调整横向间距也可能影响纵向间距,反之亦然。
如下图(图中所有子图的宽度和高度对应相等,子图平均宽度和平均高度分别为w和h):

wspace, hspace


  1. https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.subplots_adjust.html ↩︎

  • 31
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用两种方式来调整图像的子图布局:plt.subplots_adjust和ax.subplots_adjust。 1. plt.subplots_adjust:这是 matplotlib.pyplot 模块的函数,可以直接在 plt 对象上调用。此函数可以调整整个图像的子图布局,包括所有的子图和图像边框。使用该函数时,需要将所有的子图都使用 plt.subplot() 或 plt.axes() 创建,并将它们保存在一个变量。然后,可以使用 plt.subplots_adjust() 来调整这些子图的布局。 示例代码如下: ```python import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9, wspace=0.4, hspace=0.4) ``` 2. ax.subplots_adjust:这是 matplotlib.axes.Axes 类的方法,在每个 Axes 对象上调用。它用于调整单个子图的布局,可以更精确地控制每个子图之间的间距和位置。使用该方法时,需要先创建每个子图的 Axes 对象,并将它们保存在一个变量。然后,可以使用 ax.subplots_adjust() 来调整每个子图的布局。 示例代码如下: ```python import matplotlib.pyplot as plt fig = plt.figure() ax1 = fig.add_subplot(2, 2, 1) ax2 = fig.add_subplot(2, 2, 2) ax3 = fig.add_subplot(2, 2, 3) ax4 = fig.add_subplot(2, 2, 4) ax1.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9) ax2.subplots_adjust(left=0.2, right=0.8, bottom=0.2, top=0.8) ax3.subplots_adjust(left=0.3, right=0.7, bottom=0.3, top=0.7) ax4.subplots_adjust(left=0.4, right=0.6, bottom=0.4, top=0.6) ``` 总结:如果您需要一次性调整整个图像的子图布局,使用 plt.subplots_adjust();如果您需要分别调整每个子图的布局,使用 ax.subplots_adjust()。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值