3

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」を取得するにはどうすればよいですか?

4

2 に答える 2

9

返された画像オブジェクトを保持しなかった場合は、使用pylab.gciして現在の ScalarMappable を取得できます (つまり、現在のカラーバーが基づいているものは何でも)。

そこから、必要get_climなのは ScalarMappable オブジェクトのメソッドだけです。

したがって、次のことができます。

vmin, vmax = plt.gci().get_clim()
于 2012-10-25T02:06:52.777 に答える
1

2006 年のメーリング リストでの会話が道を示してくれました。

im = pylab.imshow(arr)
pylab.clim(im.norm.vmax - numpy.array([0.5, 0]))
于 2012-10-25T01:48:55.600 に答える