我目前有两个子图。注意:这是在Mac OS X 10.6.x上的matplotlib v0.99.3
我有一个事件处理程序,当单击其中一个子图时,它会打印一些东西。这只是一个临时占位符。我想要发生的是当点击子图时,我希望它占据整个图形(删除另一个子图并最大化以填满整个图)。我该怎么做呢?
答案 0 :(得分:1)
您可以通过修改该子图返回的axes来执行此操作。也就是说,轴可以以任何所需的方式定位和调整大小,而子图只是返回位于均匀网格中的轴的函数;但是一旦从子图中获得这些轴,您可以任意调整大小并重新定位它们。这是一个例子:
from pylab import *
axes = [None, None]
def make():
figure()
axes[0] = subplot(1, 2, 1)
axes[1] = subplot(1, 2, 2)
show()
def re_form():
xmax = axes[1].get_position().get_points()[1][0]
axes[1].set_axis_off()
(x0, y0), (x1, y1) = axes[0].get_position().get_points() # xmin, ymin, xmax, ymax
axes[0].set_position([x0, y0, xmax-x0, y1-y0]) # x, y, width, height
show()
在这里,我使用show()
来更新绘图,但是您需要使用更适合您的事件处理程序的内容。这个演示适用于iPython:首先run
文件,然后调用make()
,绘制两个轴,然后re_form()
,删除第二个轴并扩大第一个轴。