Matplotlib,绘图上的对数色标,但颜色栏图例上的线性色标

Matplotlib, Log color scale on plot but linear colour scale on colorbar legend(Matplotlib,绘图上的对数色标,但颜色栏图例上的线性色标)

本文介绍了Matplotlib,绘图上的对数色标,但颜色栏图例上的线性色标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要按对数比例绘制,我已经使用:

plt.contourf(cube[0,:,:].data, levels=np.arange(0,6000,10), norm=mplc.LogNorm())
但我希望颜色栏仍然是线性比例...这可能吗?如果可能,我应该如何做到这一点?plt.colorbar()命令中的NORM关键字似乎无效。

推荐答案

参见this answer on how to generate a colormap without an image。工作示例:

import matplotlib.pyplot as plt
import matplotlib.colors as mplc
import numpy as np
data = np.random.random((10,10))*6e3
my_cmap = plt.cm.coolwarm

# contour plot
plt.contourf(data, levels=np.arange(0,6000,10), cmap=my_cmap, norm=mplc.LogNorm())

# colorbar
sm = plt.cm.ScalarMappable(cmap=my_cmap, norm=plt.Normalize(vmin=0, vmax=6000))
sm._A = []
plt.colorbar(sm)

这篇关于Matplotlib,绘图上的对数色标,但颜色栏图例上的线性色标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Matplotlib,绘图上的对数色标,但颜色栏图例上的线性色标

基础教程推荐