在使用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))

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页