首页 > 解决方案 > 在 python 的顶部和底部轴上绘制 3 个图 2?

问题描述

我正在尝试绘制 3 个树状图,2 个在顶部,1 个在底部。但我想出这样做的唯一方法:

fig, axes = plt.subplots(2, 2, figsize=(22, 14))
dn1 = hc.dendrogram(wardLink, ax=axes[0, 0])
dn2 = hc.dendrogram(singleLink, ax=axes[0, 1])
dn3 = hc.dendrogram(completeLink, ax=axes[1, 0])

在右下角给我第四个空白图表。有没有办法只绘制 3 张图?

标签: pythonmatplotlib

解决方案


您可以根据需要重新划分画布区域,并使用第三个参数subplot来告诉它要绘制到哪个单元格:

plt.subplot(2, 2, 1) # divide as 2x2, plot top left
plt.plt(...)

plt.subplot(2, 2, 2) # divide as 2x2, plot top right
plt.plt(...)

plt.subplot(2, 1, 2) # divide as 2x1, plot bottom
plt.plt(...)

你也可以使用gridspec如下:

gs = fig.add_gridspec(2, 2)
ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[0, 1])
ax3 = fig.add_subplot(gs[1, :])

...

推荐阅读