matlab colorbar采用对数,matplotlib:用对数colorbar值对2D行进行着色

所以问题是你要线性(手动)缩放你的值。但是在分散调用中,您传递了一个对数缩放类。您可以直接使用它来规范化绘图调用的值,而不仅仅是传递它:import matplotlib.pyplot as plt

import numpy as np

import matplotlib as mpl

#Fake data

a = np.arange(0,10,1)

b = np.arange(10,20,1)

d = [50]*10

# define vmin and vmax

maxval=1000.0

minval=10.0

# build up colormap and normalizer

colormap = plt.get_cmap('Blues')

norm = mpl.colors.LogNorm(vmax=maxval, vmin=minval)

# helper function to plot the line and the scatter data

def plot_my_scatterdata(x, y, d):

if np.any(np.isnan(d)):

color = 'g'

else:

# use the colormap and the normalization instance!

color = colormap(norm(d[0]))

plt.scatter(a, b, c=d, cmap=colormap, norm=norm, zorder=2, s=50)

plt.plot(a,b, '-', color=color, zorder=1, lw=4)

plot_my_scatterdata(a, b, d)

d = [100]*10

b += 1

plot_my_scatterdata(a, b, d)

d = [500]*10

b += 1

plot_my_scatterdata(a, b, d)

d[0] = np.nan

b += 1

plot_my_scatterdata(a, b, d)

plt.colorbar()

plt.show()

结果:

ff91bbd772fa05d8942ee4ff088d765e.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值