Matplotlib 标准化颜色条 (Python)

itp*_*pdg 6 python numpy matplotlib colorbar contourf

我正在尝试使用 matplotlib (当然还有 numpy)绘制轮廓图。它有效,它绘制了它应该绘制的内容,但不幸的是我无法设置颜色条范围。问题是我有很多图,并且需要所有图都具有相同的颜色条(相同的最小值和最大值,相同的颜色)。我复制并粘贴了在互联网上找到的几乎所有代码片段,但没有成功。到目前为止我的代码:

    import numpy as np;
    import matplotlib as mpl;
    import matplotlib.pyplot as plt;
    [...]
    plotFreq, plotCoord = np.meshgrid(plotFreqVect, plotCoordVect);

    figHandler = plt.figure();
    cont_PSD = plt.contourf(plotFreq, plotCoord, plotPxx, 200, linestyle=None);


    normi = mpl.colors.Normalize(vmin=-80, vmax=20);

    colbar_PSD = plt.colorbar(cont_PSD);
    colbar_PSD.set_norm(normi);
    #colbar_PSD.norm = normi;
    #mpl.colors.Normalize(vmin=-80, vmax=20);

    plt.axis([1, 1000, -400, 400]);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,颜色条规范有三种不同的行,但它们都不起作用。范围仍然是自动设置的...我的意思是其他一切都正常,为什么颜色条不行?我什至没有收到错误或警告。

谢谢,itpdg

编辑1:图片,与plt.clim(-80,20):

在此输入图像描述

CoM*_*tel 1

添加此后plt.colorbar()

plt.clim(minimal_value, maximal_value)
Run Code Online (Sandbox Code Playgroud)

对于等值线图,添加参数 vmin 和 vmax:

cont_PSD = plt.contourf(plotFreq, plotCoord, plotPxx, 200, linestyle=None,vmin=minimal_value,vmax=maximal_value)
Run Code Online (Sandbox Code Playgroud)

您完整的代码应该像这样工作:

import numpy as np;
import matplotlib as mpl;
import matplotlib.pyplot as plt;
[...]
plotFreq, plotCoord = np.meshgrid(plotFreqVect, plotCoordVect);

figHandler = plt.figure();
cont_PSD = plt.contourf(plotFreq, plotCoord, plotPxx, 200, linestyle=None,vmin=minimal_value,vmax=maximal_value);


plt.colorbar()
plt.clim(minimal_value,maximal_value)
plt.show()
Run Code Online (Sandbox Code Playgroud)