【问题标题】:How to get current plot's clim in matplotlib如何在 matplotlib 中获取当前情节的爬升
【发布时间】:2012-10-15 03:45:03
【问题描述】:

在 Matlab 中绘制后,我们执行caxis(max(caxis()) - [0.5, 0]) 来缩放颜色限制,使其从当前的最大颜色限制变为低于此最大值的 0.5。这是因为 caxis() 在 Matlab 中既可以获取也可以设置颜色限制。在 matplotlib 中如何做到这一点?

也就是说,我要实现以下目标:

import numpy.random, numpy, pylab
arr = numpy.random.randn(100,100)
pylab.figure()
pylab.imshow(arr)
pylab.colorbar()
pylab.clim([numpy.max(arr.ravel())-0.5, numpy.max(arr.ravel())]) # [*]
pylab.show()

没有pylab.clim() 的星号调用可以求助于arr,正在绘制的数组。换句话说,如何在 matplotlib 中获取当前图形的“clim”?

【问题讨论】:

    标签: python matlab numpy matplotlib


    【解决方案1】:

    如果您没有保留返回的图像对象,您可以使用pylab.gci 获取当前的 ScalarMappable(即当前颜色条将基于的任何内容)。

    从那里,您只需要 ScalarMappable 对象的 get_clim 方法。

    所以,你可以这样做:

    vmin, vmax = plt.gci().get_clim()
    

    【讨论】:

      【解决方案2】:

      找到了一个 2006 年的邮件列表对话,向我展示了道路:

      im = pylab.imshow(arr)
      pylab.clim(im.norm.vmax - numpy.array([0.5, 0]))
      

      【讨论】:

        猜你喜欢
        • 2017-05-11
        • 2017-07-08
        • 1970-01-01
        • 1970-01-01
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        • 2012-04-22
        • 1970-01-01
        相关资源
        最近更新 更多