如何扩大Matplotlib的子图?

3

我目前有两个子图。注意:这是在Mac OS X 10.6.x上的matplotlib v0.99.3中。

我有一个事件处理程序,当其中一个子图被点击时,它会打印一些东西。这只是一个临时占位符。我想要发生的是,当子图被点击时,我希望它占据整个图(删除其他子图并最大化以填满整个图)。我该如何做到这一点?


请查看 https://dev59.com/7V_Va4cB1Zd3GeqPV7Jz#59319822。 - Michel de Ruiter
1个回答

1

您可以通过修改subplot返回的来实现这一点。也就是说,轴可以以任何所需的方式定位和调整大小,而subplot只是一个返回在统一网格中定位的轴的函数;但是一旦您从subplot获得了这些轴,您可以任意调整它们的大小和位置。以下是一个示例:

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一起使用:首先运行文件,然后调用make(),它会绘制两个轴,然后再调用re_form(),它会删除第二个轴并扩展第一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接