python - 如何在 matplotlib 中获取当前图的 clim

标签 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 中获取当前图形的“clim”?

最佳答案

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

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

所以,你可以这样做:

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

关于python - 如何在 matplotlib 中获取当前图的 clim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13060450/

相关文章:

arrays - 如何找到相同数量和颜色的组在 MATLAB 中给出不同的颜色?

python - Numpy 数组索引超出遗传算法范围

python - 如何制作语义标签图像?

string - 如何将 MATLAB 数组的所有元素合并为字符串?

python - 来自 Pandas.DataFrames 列表的 Xarray.DataSet

python - numexpr:临时变量或重复的子表达式?

python - 如何检查对象是否是命名元组的实例?

python - 创建元组的子类时调用 __new__

python - swig 忽略继承的函数

python - 多次调用函数的返回值不同