Mam figurę, która zawiera trzy podziały ułożone pionowo. Po kliknięciu na rysunek chcę, aby drugi subplot ax2
został ukryty, a pozostałe działki wypełniły przestrzeń. Drugie kliknięcie na rysunku powinno przywrócić pierwotną fabułę i układ.matplotlib: ukryj subplot i wypełnij przestrzeń z innymi subplotami
Ukrywanie subplota ax2
nie stanowi problemu, ale jak mogę zmienić położenie pozostałych wątków?
Próbowałem utworzyć nowy GridSpec
, używając metod set_position
i set_subplotspec
, ale nic się nie udało. Jestem pewien, że czegoś tutaj brakuje, każda pomoc będzie doceniona.
To jest mój kod:
import matplotlib.pyplot as plt
from matplotlib import gridspec
fig = plt.figure()
gs = gridspec.GridSpec(3, 1, height_ratios=[5, 2, 1])
ax1 = fig.add_subplot(gs[0])
ax2 = fig.add_subplot(gs[1], sharex=ax1)
ax3 = fig.add_subplot(gs[2], sharex=ax2)
visible = True
def toggle_ax2(event):
global visible
visible = not visible
ax2.set_visible(visible)
plt.draw()
fig.canvas.mpl_connect('button_press_event', toggle_ax2)
plt.show()