如何调整 matplotlib 子图之间的间距


在 Matplotlib 中,您经常可以使用子图来显示多个相邻的图。不幸的是,这些子图默认情况下往往会重叠。

解决这个问题最简单的方法是使用 Matplotlib Tight_layout()函数。本教程解释了如何在实践中使用此功能。

创建子图

考虑以下 2 列 2 行 4 个子图的排列:

 import matplotlib.pyplot as plt

#define subplots
fig, ax = plt. subplots (2, 2)

#display subplots
plt. show ()

请注意子图是如何重叠的。

使用 Tight_layout() 调整子图间距

解决这个重叠问题的最简单方法是使用 Matplotlib Tight_layout()函数:

 import matplotlib.pyplot as plt

#define subplots
fig, ax = plt. subplots (2, 2)
fig. tight_layout ()

#display subplots
plt. show ()

调整子图间距 Matplotlib

调整子图标题的间距

在某些情况下,您还可以为每个子图指定标题。不幸的是,即使是Tight_layout()函数也容易导致子图标题重叠:

 import matplotlib.pyplot as plt

#define subplots
fig, ax = plt. subplots (2, 2)
fig. tight_layout ()

#define subplot titles
ax[0, 0]. set_title ('First Subplot')
ax[0, 1]. set_title ('Second Subplot')
ax[1, 0]. set_title ('Third Subplot')
ax[1, 1]. set_title ('Fourth Subplot')

#display subplots
plt. show () 

Matplotlib 中带有标题的子图

解决此问题的方法是使用h_pad参数增加子图之间的高度填充:

 import matplotlib.pyplot as plt

#define subplots
fig, ax = plt. subplots (2, 2)
fig. tight_layout (h_pad= 2 )

#define subplot titles
ax[0, 0]. set_title ('First Subplot')
ax[0, 1]. set_title ('Second Subplot')
ax[1, 0]. set_title ('Third Subplot')
ax[1, 1]. set_title ('Fourth Subplot')

#display subplots
plt. show () 

Matplotlib 子图标题间距

调整整体标题间距

如果您有总体标题,则可以使用subplots_adjust()函数来确保它不会与子图标题重叠:

 import matplotlib.pyplot as plt

#define subplots
fig, ax = plt. subplots (2, 2)
fig. tight_layout (h_pad= 2 )

#define subplot titles
ax[0, 0]. set_title ('First Subplot')
ax[0, 1]. set_title ('Second Subplot')
ax[1, 0]. set_title ('Third Subplot')
ax[1, 1]. set_title ('Fourth Subplot')

#add overall title and adjust it so that it doesn't overlap with subplot titles
fig.suptitle(' Overall Title ')
plt.subplots_adjust(top= 0.85 )

#display subplots
plt. show () 

Matplotlib 中的标题间距

您可以在此处找到更多 Matplotlib 教程。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注