本文介绍了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,绘图上的对数色标,但颜色栏图例上的线性色标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!