colormap与colorbar应用

一,colormap

常见色度枚举值如下

应用如下

img = cv2.applyColorMap(img, cv2.COLORMAP_JET)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

常用的COLORMAP_JET效果如下,该模式常用于生成热力图

二,colorbar

colorbar所有色带如下

应用如下

cmap = 'nipy_spectral'
plt.imshow(mask,cmap=plt.get_cmap(cmap))
plt.colorbar()
plt.show()

拓展:基于gridspec.GridSpec生成多子图

在做一个项目的时候,需要gridspec.GridSpec生成多子图,其中还涉及到热力图,colorbar单独生成,这里做一个分享,鉴于项目隐私,隐去了一些信息,自己在写的时候可以根据注释调整代码

    fig = plt.figure()
    gs = gridspec.GridSpec(2, 3, width_ratios=[1, 1, 0.05], height_ratios=[1, 1], figure = fig, 
    wspace = 0.03, hspace = 0.03, left = 0.5, right = 1, bottom = 0.35, top = 1)  
    # 创建三子图,第三个子图用于存放色带, 设置两行是为了调整色带高度,不然色带高度和前面不一致, 从wspace到top都是调整子图位置
    ax1 = fig.add_subplot(gs[0])
    ax2 = fig.add_subplot(gs[1])
    cax = fig.add_subplot(gs[2])  # colorbar 绘图区
    font = {'family':'STIXGeneral', 'weight':'bold', 'size':8}  # 字体字号设置
    den = resize(Y, X)       # resize将两张不同的多维数组改成同一size
    ax1.set_yticks([0, 100, 200, 300, 400, 500, 600])
    ax1.tick_params(labelsize=4, labelrotation=45, pad = 0, length = 1.5)  # 同时设置x和y轴刻度字体大小并改变字体方向, pad调整坐标与坐标轴之间距离,length控制坐标长度
    # ax1.set_ylabel('highth', font)   # 设置坐标标题
    ax1.set_xticks([0, 100, 200, 300, 400, 500, 600]) # 将x轴放在顶部
    ax1.xaxis.set_label_position('top')  
    ax1.xaxis.tick_top()
    # ax1.set_xlabel('width', font)
    ax1.set_title('str', font, pad=3, y = -0.1)  # pad 控制 title到图之间的距离, y默认为1,标题在顶部,设置y数值控制标题位置
    ax1.get_title()
    ax1.imshow(X)
    
    ax2.axes.get_yaxis().set_visible(False)  # 不需要显示子图y轴的方式
    # ax2.set_yticks([0, 100, 200, 300, 400, 500, 600])
    ax2c = ax2.matshow(Y)  # 映射第三子图色条用
    ax2.tick_params(labelsize=4, labelrotation=45, pad = 0, length = 1.5)  # 同时设置x和y轴刻度字体大小并改变字体方向, pad调整坐标与坐标轴之间距离,length控制坐标长度
    # ax2.set_ylabel('highth', font)
    ax2.set_xticks([0, 100, 200, 300, 400, 500, 600])
    ax2.xaxis.set_label_position('top')
    ax2.xaxis.tick_top()
    # ax2.set_xlabel('width', font)
    ax2.set_title('str', font, pad = 3, y = -0.1)
    ax2.text(1, 80, 'str', fontsize=4, weight="bold", color = 'w')
    ax2.imshow(Y, cmap = 'nipy_spectral')
    
    plt.colorbar(ax2c, pad = 0.06, fraction=0.035, cax=cax)  # 在第三子图添加colorbar
    cax.tick_params(labelsize=4, labelrotation=45, pad = 0, length = 1.5)
    cax.set_ylabel('str', font, labelpad=0)   # labelpad到坐标轴的距离
    cax.yaxis.set_label_position('right')
	    filename = img_path.split('/')[-1]
    filename = filename.replace('.jpg', 'xxx.png')
    print('Save at', filename)
    plt.savefig('./path to save/{}'.format(filename), bbox_inches='tight', pad_inches=0.05, dpi=300)  # pad_inches为保存图像周边距离

 最终子图显示如下,部分关键信息隐去,请谅解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值