【问题标题】:How to enlarge subplot matplotlib?如何放大子图matplotlib?
【发布时间】:2011-03-24 08:45:05
【问题描述】:

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

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

【问题讨论】:

标签: python matplotlib


【解决方案1】:

您可以通过修改子图返回的axes 来做到这一点。也就是说,轴可以以任何所需的方式定位和调整大小,而 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:首先run 文件,然后调用make(),绘制两个轴,然后re_form(),删除第二个轴并加宽第一个。

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2015-07-15
    • 2017-02-18
    • 2010-11-16
    • 2013-07-01
    • 2017-10-20
    相关资源
    最近更新 更多