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)
相关文章