1

已解决:matplotlib 3.4 出现此问题,更新到 3.5 解决了该问题。

我在一个图中绘制了多个子图,它们都有标题、标签和子图标题。为了保持一切可见和正确的大小,我使用了 constrained_layout。我想添加一个左对齐的标题。但是,当我指定 x 位置(即使是默认值 0.5)时,标题与图形重叠。

我的情节要复杂得多,但这已经表明了我的问题:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(10, 5), constrained_layout=True)
gs = fig.add_gridspec(1,1)
ax1 = fig.add_subplot(gs[0,0])
fig.suptitle('Title', ha='left')

标题不重叠

只更改最后一行代码:

fig.suptitle('Title with x-position', x=0.5, ha='left')

标题重叠

我最初使用的是紧凑布局,但由于在导出时紧凑布局没有保持图形的指定大小,所以切换到了 constrained_layout。我也从 subplots 切换到 gridspec,因为我读到 constrained_layout 不支持 subplots。我知道我可以用 增加额外的空间fig.set_constrained_layout_pads(h_pad=0.3),但这也增加了地块下方的空间,我想避免这种情况。

希望有人能告诉我为什么会发生这种情况以及如何使标题与情节不重叠的左侧对齐!

4

1 回答 1

1

问题出现在 Matplotlib 3.4 中,更新到 3.5 修复了问题

于 2022-01-30T12:07:37.597 回答