在使用python matplotlib和Axes3D绘制曲面时,改变facecolors的显示范围使其表示真实值。

facecolors是surface命令中用来改变颜色的组件,可以将指定变量作为表示为对应的颜色。但是这个组件默认colorbar的显示范围为0~1,且其处理范围为0~1。一般来说,会将颜色变量归一化使其值落到[0,1]中。但本研究要求颜色表示真实值,因此归一化的方法不适用。所以采用如下方法:

  1. 根据数据范围将原始数据除以相应的系数,使数据处于[0, 1]中。该系数一般是取数据中最大值相邻的整数或一位小数。
  2. 用format函数改变colorbar的ticks,即将其乘以上一步的系数。

def fmt(x,pos):    # 改变显示范围,由0~1扩展
   
x=round(x, 2)
   
return r'${}$'.format(x*1.2)
cb=plt.colorbar(surf
, shrink=0.5, aspect=10, pad=0.1, format=ticker.FuncFormatter(fmt))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值