Matplotlib,在绘图上记录颜色比例,但在颜色条图例上使用线性颜色比例

时间:2014-10-15 11:23:18

标签: python matplotlib legend contour colorbar

我想用对数比例绘制,我用它做过:

plt.contourf(cube[0,:,:].data, levels=np.arange(0,6000,10), norm=mplc.LogNorm())

但是我希望颜色条仍然是线性标尺...这是可能的,如果是这样,我该怎么做? norm关键字似乎在plt.colorbar()命令中无效。

1 个答案:

答案 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)

Log contourf linear colorbar