如何调整 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 ()
调整子图标题的间距
在某些情况下,您还可以为每个子图指定标题。不幸的是,即使是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 ()
解决此问题的方法是使用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 ()
调整整体标题间距
如果您有总体标题,则可以使用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 教程。