python - 如何放大子图matplotlib?

标签 python matplotlib

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

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

最佳答案

您可以通过修改 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 一起工作:首先运行文件,然后调用绘制两个轴的make(),然后调用re_form(),它删除了第二个轴并加宽了第一个轴。

关于python - 如何放大子图matplotlib?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3390568/

相关文章:

python - 如何更改堆积的 pyplot 图表的列颜色以指示另一列是真还是假?

python - 如何为 QTextEdit 小部件定义 mousePressEvent 函数而不对其进行子类化?

python - 将 2 个图像转换为 numpy 数组并逐像素比较

c++ - 我应该坚持使用哪种语言

python - 图形显示窗口保持隐藏状态

python - 在 matplotlib 中为颜色条添加白色背景

python - 在 python 3.6 中安装 matplotlib 的问题

python - Tensorflow:tf.nn.conv2d 实际执行在哪里?

python - 使用 Python、Ruby 和 Perl 重新编译 MacPort 版本的 MacVim

python - 如何在 Python OpenCV 中读取图像