我有一个包含三个垂直排列的子图的图表。一旦我点击这个图表,我希望第二个子图 ax2
被隐藏,并且其他的子图填充空间。再次点击图表应该还原原始的图和布局。
隐藏子图 ax2
并不是问题,但我如何重新排列其他子图的位置呢?
我尝试创建一个新的 GridSpec
,使用 set_position
和 set_subplotspec
方法,但什么都没有起作用。我确定我在这里漏掉了些什么,任何帮助将不胜感激。
这是我的代码:
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()
height_ratios
来为每个子图产生所需的布局。 - ImportanceOfBeingErnest