为什么在使用 constrained_layout 指定 x 时标题与绘图重叠?
Why does the title overlap with the plot when specifying x using constrained_layout?
已解决: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')
我一开始用的是tight layout,后来改成constrained_layout,因为tight_layout导出的时候没有保持图形的指定尺寸。
我也从子图切换到 gridspec,因为我读到 constrained_layout 不支持子图。
我知道我可以用 fig.set_constrained_layout_pads(h_pad=0.3)
添加额外的 space,但这也会在地块下方添加 space,我想避免这种情况。
希望有人能告诉我为什么会这样,以及如何让标题左对齐而不与情节重叠!
问题出现在Matplotlib 3.4,更新到3.5解决了问题
已解决: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')
我一开始用的是tight layout,后来改成constrained_layout,因为tight_layout导出的时候没有保持图形的指定尺寸。
我也从子图切换到 gridspec,因为我读到 constrained_layout 不支持子图。
我知道我可以用 fig.set_constrained_layout_pads(h_pad=0.3)
添加额外的 space,但这也会在地块下方添加 space,我想避免这种情况。
希望有人能告诉我为什么会这样,以及如何让标题左对齐而不与情节重叠!
问题出现在Matplotlib 3.4,更新到3.5解决了问题