对数颜色条?

Logarithmic colorbar?

我有一个颜色图,我已成功修改它使颜色呈对数变化,从而产生了我所寻求的显着变化。但是,我的颜色条仍然卡住,将错误的颜色与错误的值相关联。

这里有一张图片可以帮助

如您所见,颜色图是对数的,但 colorbar 不是。如何让颜色条变为对数?

代码:

plt.figure(dpi=plotResoulution)  # resolution
    self._data = self.rmsArray[:, :, plotTimeStep] 
    plt.pcolor(self._data, norm = colors.LogNorm())  
    colors.LogNorm()
    self._color_map = plt.imshow(self._data) 
    # creates colorbar on the side
    plt.colorbar().ax.set_ylabel('RMS meters of separation', rotation=270, labelpad = 20)
    plt.xlabel("Track")  
    plt.ylabel("car")  
    plt.title(filename + "_TS-" + str(plotTimeStep))  
    plt.savefig(filename + "_TS-" + str(plotTimeStep) + '.png', bbox_inches='tight')
    plt.show()  

如您所见,我有代码 norm = colors.LogNorm() 但这并没有改变颜色栏,因此颜色与值不一致。

下面问题的答案会有所帮助(虽然这似乎是一个重复的问题);

A logarithmic colorbar in matplotlib scatter plot

Matplotlib 也有一个专门用于颜色图规范化的部分;

https://matplotlib.org/users/colormapnorms.html

对于您的问题,您可能希望像下面这样使用储值;

pcm = plt.pcolor(self._data, norm = colors.LogNorm())

plt.colorbar(pcm)