熱力圖實現-heatmap.js 代碼示例


Heatmap.js  – 最強大的 Web 動態熱圖

最新公司項目需要用到熱力圖,在百度上搜下,了解到heatmap.js這款神器。然后搜了下例子,卻很難搜到馬上出效果的例子,特此寫一篇heatmap.js基礎教程。

官網:http://www.patrick-wied.at/static/heatmapjs/

api:http://www.patrick-wied.at/static/heatmapjs/docs.html

官網例子:http://www.patrick-wied.at/static/heatmapjs/examples.html

本人英文不好,官網的例子看了好久才看懂

首先看一段代碼

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <style>
 7         div {
 8             width:600px; height:400px;border: 1px solid;border-color: grey;
 9         }
10     </style>
11 </head>
12 <body>
13     <div id="heatmap"></div>
14 </body>
15 <script src="js/heatmap.js"></script>
16 <script type="text/javascript">
17 // 創建一個heatmap實例對象
18 // “h337” 是heatmap.js全局對象的名稱.可以使用它來創建熱點圖實例
19 // 這里直接指定熱點圖渲染的div了.heatmap支持自定義的樣式方案,網頁外包接活具體可看官網api
20 var heatmapInstance = h337.create({
21     container: document.querySelector('#heatmap'),
35 });
36 //構建一些隨機數據點,網頁切圖價格這里替換成你的業務數據
37 var points = [];
38 var max = 0;
39 var width = 600;
40 var height = 400;
41 var len = 200;
42 while (len--) {
43     var val = Math.floor(Math.random()*100);
44     max = Math.max(max, val);
45     var point = {
46         x: Math.floor(Math.random()*width),
47         y: Math.floor(Math.random()*height),
48         value: val
49     };
50     points.push(point);
51 }
52 var data = {
53     max: max,
54     data: points
55 };
56 57 //因為data是一組數據,web切圖報價所以直接setData
58 heatmapInstance.setData(data); //數據綁定還可以使用
81 </script>
82 </html>

請先下載 heatmap.js ,上面的代碼復制出去就能看到效果了。

API方法,屬性

h337.create(configObject)

創建heatmap實例,configObject是一個json對象,里面有很多參數

參數詳情

container 頁面操作div的dom對象,如div的id為test,可以寫成

backgroundColor 畫板的背景顏色設置,支持rgb(a),顏色名稱,但必須要用引號

gradient  設置熱點圖的光圈顏色,數值為[0,1],數值大的在光圈內側,數值相等則靠下的生效,數值設置不分大小順序,並可以同時設置很多顏色

radius 設置光圈的半徑大小,值>=0,=0取得是默認值

opacity 光圈透明度設置[0,1],如果值設置了,會重寫maxOpacity和minOpacity的值

 1 h337.create({ 
 2     container:document.getElementById("text"),
 3     backgroundColor:'red',    // '#121212'    'rgba(0,102,256,0.2)'
 4     gradient: {
 5         '0.5': 'blue',
 6         '0.8': 'red',
 7         '0.95': 'white',
 8         '0.6':'yellow',
 9         '0.5':'green'
10     },
11     radius: 10,        // [0,+∞)
12     opacity:0.8,
13 });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM