如何在带有子图的图形上添加任意大的白色边距?

时间:2019-12-02 19:07:52

标签: matplotlib

我试图在带有子图的图形上添加任意大的白色边距(或填充),因为我希望图形的subtitle不要与这些子图的任何子图或标题重叠。我正在使用Matplotlib 3.1.2。

当前,我有以下源代码。

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(2, 1, figsize=(15, 10))

n = 10
x = np.arange(0, n)
y = np.random.rand(n)

ax[0].plot(x, y)
ax[0].set_xlabel('x')
ax[0].set_ylabel('y')

y = np.random.rand(n)

ax[1].plot(x, y)
ax[1].set_xlabel('x')
ax[1].set_ylabel('y')

fig.suptitle("I want to have white space around me!!!")
# fig.tight_layout(rect=[0, 0.03, 1, 0.80])
plt.subplots_adjust(top=0.85)

plt.show()

如果我尝试使用tight_layoutsubplots_adjust(如对这个问题Matplotlib tight_layout() doesn't take into account figure suptitle的一些回答所建议),它似乎对页边距没有任何影响。这是上一个示例的执行结果。

enter image description here

是否可以在图形的左侧,右侧,底部和(或)顶部(带有子图)添加任意大的白色边距?我想指定图形大小,并任意增加或减少图像周围的空白。如果我决定为每个子图添加一个标题,我也希望该解决方案能够起作用。如何才能做到这一点?

1 个答案:

答案 0 :(得分:0)

fig, axs = plt.subplots(2,1, figsize=(5,5))
fig.patch.set_facecolor('grey')
fig.suptitle("Look at all that grey space around me!!!")
fig.subplots_adjust(top=0.6, bottom=0.4, left=0.4, right=0.6)

enter image description here