在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中获得当前数字的“攀升”?
答案 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]))