【问题标题】:Logarithmic colorbar?对数彩条?
【发布时间】:2019-12-06 08:09:12
【问题描述】:

我有一个已成功修改为对数颜色的颜色图,从而产生了我所寻求的巨大变化。但是,我的颜色条仍然无法将错误的颜色与错误的值相关联。

这里有一张图片来帮忙

如您所见,颜色图是对数的,但 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(),但这不会改变颜色条,因此颜色与值有关。

【问题讨论】:

  • 你有一个plt.pcolor,它是对数的,你有一个plt.imshow,它不是对数的(因为没有明确设置标准)。颜色条是为最后一个生成的,所以它也不是对数的。解决方案:不要在同一轴上创建两个图像图!

标签: python matplotlib colorbar logarithm


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 2020-08-03
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多