Matplotlib,绘图上的对数色标,但颜色栏图例上的线性色标 [英] Matplotlib, Log color scale on plot but linear colour scale on colorbar legend

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆