我有一個圖,其中包含三個垂直排列的子圖。一旦我點擊進入該圖,我想要隱藏第二個子圖塊ax2
,而其他圖則填充該空間。第二次點擊圖形應該恢復原始圖和佈局。matplotlib:隱藏子圖和其他子圖填充空間
隱藏子區域ax2
不是問題,但是如何重新排列其他子圖的位置?
我已經嘗試使用set_position
和set_subplotspec
方法創建新的GridSpec
,但沒有任何結果。我確信我在這裏失去了一些東西,任何幫助將不勝感激。
這是我的代碼:
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()