我想用对数比例绘制,我用它做过:
plt.contourf(cube[0,:,:].data, levels=np.arange(0,6000,10), norm=mplc.LogNorm())
但是我希望颜色条仍然是线性标尺...这是可能的,如果是这样,我该怎么做? norm关键字似乎在plt.colorbar()
命令中无效。
答案 0 :(得分:1)
见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)