栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python heatmap画法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python heatmap画法

任务描述

将一个归一化的分数以热图的形式显示出来,分数高的地方颜色深,分数小的地方颜色浅
注意:使用单一颜色无法实现这种渐变过程

原理

将单通道的0-1之间的score值映射到三通道的颜色空间

原料
  1. 一个单通道的score矩阵
  2. 颜色空间列表,通过matplotlib.pyplot.get_cmap获得
工具

matplotlib.pyplot、numpy、cv2、PIL.Image
常用的画法还有:plt.scatter,可直接对score进行映射显示

颜色参考 1、Miscellaneous colormaps系列:

可选:flag, prism,ocean, gist_earth, terrain, gist_stern,gnuplot,CMRmap,gnuplot2,cubehelix,brg,hsv,gist_rainbow,rainbow,jet,nipy_spectral,nipy_spectral,gist_ncar.

2、纯色渐变系列Sequential colormaps:

可选:Greys,Purples, Blues ,Greens,Oranges,Reds,YIOrBr,YIOrRd,PuRd,RdPu,GnPu,PuBu,YIGnBu,PuBuGn,BuGn,YIGn,

使用cmap
import matplotlib.pyplot as plt
G_map=score # a ndnrray of score ,dim:N X M
G_cmap = plt.get_cmap('BuGn') #得到对应的颜色空间列表,四通道,应该包含透明通道
G_color_block = (G_cmap(G_map)*255)[:,:,:3].astype(np.uint8)#[:,:,:3] 表示进行切片,去除了透明通道

G_color_block就是映射后的颜色值,可直接使用

为了是结果更加丝滑,一般会先对score进行模糊,例如高斯模糊
overlay = cv2.GaussianBlur(overlay,tuple((patch_size * (1-overlap)).astype(int) * 2 +1),0)

cv2.GaussianBlur的用法自行查询

结果展示(未使用模糊效果)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/829315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号