python3中缺少set_gamma

时间:2018-11-28 21:09:18

标签: python-3.x matplotlib

我有一些Python2.7的旧代码创建了图形。该过程的一部分涉及在颜色栏中设置伽玛(老实说,我不知道set_gamma函数的作用,但是它在那里)。但是,这在Python3.x中不再起作用。下面的例子

function ex() {
  allowUA = false;

  for (var i = 0; i < arr.length; i++) {
    (function(index) {
      setTimeout(() => {
        console.log(index);
      }, i * 3000);
    })(i);
  }

  if (i == arr.length - 1) {
    allowUA = true;
  }
}

两个问题:

  1. set_gamma做什么?

  2. 我可以在3.x中使用set_gamma(或等效项)吗?

1 个答案:

答案 0 :(得分:1)

这与python版本无关。就是您使用了两个不同的matplotlib版本。其中一个默认为LinearSegmentedColormap,另一个默认为ListedColormapset_gamma仅对LinearSegmentedColormap有意义。

您可以通过以下代码找出LinearSegmentedColormap是哪些色图:

from matplotlib.cm import cmap_d

for name, cmap in cmap_d.items():
    print(name, type(cmap))

旧的默认"jet"颜色图 LinearSegmentedColormap,因此在您的代码中添加颜色图以明确使用

im = ax.imshow(..., cmap="jet")

关于gamma是什么:这是对颜色图的亮度和对比度https://en.wikipedia.org/wiki/Gamma_correction的修正。由于0.9非常接近1,因此在这种情况下使用伽玛校正与不使用伽玛校正之间实际上没有区别。因此,如果有疑问,并且如果应用程序不需要特殊的颜色配置文件,我会说完全将其省略。