Heatmap.js 学习笔记
来源:互联网 发布:树莓派zerow ubuntu 编辑:程序博客网 时间:2024/05/29 06:44
heatmap.js 2.0
github
https://github.com/pa7/heatmap.js/releases参考博客 http://blog.csdn.net/rongchaoliu/article/details/47830799
一、简介
Heatmap.js(热图) 是目前应用最广的web动态热图javaScript库,帮助研究和可视化用户的行为。
热图有时候叫热区图或者热力图,都是用于表现某种事物密集度的图形化显示
用途:
1.网站设计,可以帮助设计人员知道用户喜欢点哪些地方,对哪些东西感兴趣,以此来改良设计,改善用户体验
2.用户调查:现在很多像购物网站,都用到heatmap分析顾客在网站上哪些地方点击量比较大
3.模拟分布,比如绘制热力地图、气象云图、无线射频信号的分布等等,都可以用这个来做
二、代码结构
1.js库包裹在一个立即执行匿名函数库中,避免污染全局变量命名空间
2.核心对象
1)Store(数据)
2)Canvas2dRenderer(绘制工具)
3)HeatMap(构建器)
3.通过global[‘h337’]暴露 创建工厂
三、热力图渲染原理
1、设置单点渲染模板
核心方法:canvas的createRadialGradient方法
每个点设置渲染半径,由渐变因子blur确定内圆比例,内圆与外圆的圆周间进行无色的放射渐变,达到中间透明度高,边缘透明度低的效果。这个无色的透明度渐变的圆形即为点的模板
2、根据模板绘制全部点
核心方法:canvas的drawImage方法
在每个点的位置按照模板进行绘制,达到重叠部分透明度叠加的效果
3、构建0到256的调色板
核心方法:canvas的createLinearGradient方法
var gradient = paletteCtx.createLinearGradient(0, 0, 256, 1); for (var key in gradientConfig) { gradient.addColorStop(key, gradientConfig[key]); } paletteCtx.fillStyle = gradient; paletteCtx.fillRect(0, 0, 256, 1);
4、着色
核心方法:canvas的putImageData方法
对绘制的每个点进行着色,获取绘制的区域中每个像素,根据像素的透明度去调色板中取对应的颜色进行渲染,最后达到热力图的效果
四、代码解读
1.heatmapFactory 创建工厂对象
<1>通过h337属性名暴露给外界
global['h337'] = heatmapFactory;
<2>heatmapFactory内容
var heatmapFactory = { create: function(config) { return new Heatmap(config); }, register: function(pluginKey, plugin) { HeatmapConfig.plugins[pluginKey] = plugin; }};
creat方法:创建heatmap对象
register方法:注册一个heatmap插件,即给插件一个key以管理
<3>config为创建heatmap的参数配置信息
2.heatmapInstance heatMap对象
h337.creat(config),命名为heatmapInstance
<1>heatmapInstance的API接口
3.HeatmapConfig 默认配置
var HeatmapConfig = { defaultRadius: 40, defaultRenderer: 'canvas2d', defaultGradient: { 0.25: "rgb(0,0,255)", 0.55: "rgb(0,255,0)", 0.85: "yellow", 1.0: "rgb(255,0,0)"}, defaultMaxOpacity: 1, defaultMinOpacity: 0, defaultBlur: .85, defaultXField: 'x', defaultYField: 'y', defaultValueField: 'value', plugins: {}};
4.Store 数据管理
5、Renderer (Canvas2dRenderer) 渲染管理
- Heatmap.js 学习笔记
- heatmap学习笔记
- 热点图heatMap.js V2.0 研究笔记
- heatmap
- 借用heatmap.js热力图实现
- 深度学习入门;图像的heatMap
- js使用heatmap热力图的一些操作
- heatmap.js 一个用canvas画热力图的利器
- heatmap.js v2.0 热点图插件 使用demo例子
- heatmap.js 一个用canvas画热力图的利器
- heatmap.js 一个用canvas画热力图的利器
- heatmap.js 一个用canvas画热力图的利器
- heatmap.js调用百度地图api做热力图
- Heatmap.js – 最强大的 Web 动态热图
- heatMap相关
- 绘制heatmap
- heatmap example
- JS学习笔记
- 14个你可能不知道的javascript调试技巧
- M6G2C 飞思卡尔 嵌入式linux 内核驱动编译注意点
- 循环嵌套的应用
- 【Scikit-Learn 中文文档】概率校准
- AutoMapper官方文档(一)【入门】
- Heatmap.js 学习笔记
- navicat premium 中文破解版 11.18 mac版
- S12X微处理器的XGATE协处理器使用指南
- unity问题汇总
- bash: ifconfig: command not found 解决办法
- Session 与InteractiveSession()区别
- poj日记(1004)
- 机器学习之决策树算法
- 论文阅读学习