Построить 3 графика 2 сверху и один на нижней оси в python?

#python #matplotlib

#python #matplotlib

Вопрос:

Я пытаюсь построить 3 дендрограммы, 2 сверху и одну снизу. Но единственный способ, которым я понял это:

 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 графика?

Ответ №1:

Вы можете повторно выделить область холста по своему усмотрению и использовать 3-й аргумент 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(...)
 

Вы также можете использовать a 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, :])

...