如何在matplotlib中获得当前情节的攀升

时间:2012-10-25 01:44:11

标签: python matlab numpy matplotlib

在Matlab中绘图后,我们会caxis(max(caxis()) - [0.5, 0])缩放颜色限制,使其从当前的最大颜色限制变为低于此最大值的0.5。这是有效的,因为Matlab中的caxis()都获取并设置了颜色限制。如何在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中获得当前数字的“攀升”?

2 个答案:

答案 0 :(得分:6)

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

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

所以,你可以这样做:

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

答案 1 :(得分:1)

找到了2006年的邮件列表对话,向我展示了方式:

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