Python Matplotlib,绘图上的对数颜色比例,但色条图例上的线性颜色比例
我想以对数比例进行绘图,我已经使用:Python Matplotlib,绘图上的对数颜色比例,但色条图例上的线性颜色比例,python,matplotlib,legend,contour,colorbar,Python,Matplotlib,Legend,Contour,Colorbar,我想以对数比例进行绘图,我已经使用: plt.contourf(cube[0,:,:].data, levels=np.arange(0,6000,10), norm=mplc.LogNorm()) 但我希望颜色条仍然是线性比例…这可能吗?如果可能,我该怎么做?norm关键字在plt.colorbar()命令中似乎无效。请参阅。一个有效的例子: import matplotlib.pyplot as plt import matplotlib.colors as mplc import num
plt.contourf(cube[0,:,:].data, levels=np.arange(0,6000,10), norm=mplc.LogNorm())
但我希望颜色条仍然是线性比例…这可能吗?如果可能,我该怎么做?norm关键字在plt.colorbar()
命令中似乎无效。请参阅。一个有效的例子:
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)
我相信还有更直接的方法,但一个黑客可能会制作第二个看不见的图像,而不进行日志缩放,然后将颜色栏连接到该图像。你的意思是这样吗?