【发布时间】:2021-10-31 18:52:16
【问题描述】:
我正在尝试创建一个包含 8 个子图(4 行和 2 列)的图。为此,我编写了这段代码来读取 x 和 y 数据并以下列方式绘制它:
fig, axs = plt.subplots(4, 2, figsize=(15,25))
y_labels = ['k0', 'k1']
for x in range(4):
for y in range(2):
axs[x, y].scatter([i[x] for i in X_vals], [i[y] for i in y_vals])
axs[x, y].set_xlabel('Loss')
axs[x, y].set_ylabel(y_labels[y])
但是,我想通过以下方式(黄色文本中的标题)为所有行(而不是地块)添加标题:
我找到了这张图片和一些方法来做到这一点here,但我无法为我的用例实现这个并得到一个错误。这是我尝试过的:
gridspec = axs[0].get_subplotspec().get_gridspec()
subfigs = [fig.add_subfigure(gs) for gs in gridspec]
for row, subfig in enumerate(subfigs):
subfig.suptitle(f'Subplot row title {row}')
这给了我错误:'numpy.ndarray' object has no attribute 'get_subplotspec'
所以我把代码改成了:
gridspec = axs[0, 0].get_subplotspec().get_gridspec()
subfigs = [fig.add_subfigure(gs) for gs in gridspec]
for row, subfig in enumerate(subfigs):
subfig.suptitle(f'Subplot row title {row}')
但这返回了错误:'Figure' object has no attribute 'add_subfigure'
【问题讨论】:
标签: python matplotlib subplot