【Chart.js】通過Ajax請求JSON數據來繪制圖


在使用Chart.js繪制圖表時,我們通常會有這樣的需求:從后台方法動態獲取圖表的數據,而非Demo中使用的靜態數據。本文將分享如何使用Ajax動態請求JSON數據並且完成圖表的繪制。

解決方案

在html頁中添加對Chart.js的引用(下載js文件或者添加CDN引用)

https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.js

1 使用HTML5<canvas>標簽定義一個圖形容器,用來繪制圖形

<canvas id="myChart" width="740" height="200"></canvas> 1 在JS文件中添加 function drawRadarChart() ;

function drawLineChart() {

      // 格式化時間數據      

Date.prototype.formatMMDDYYYY = function() {           return (this.getMonth() + 1) +           "/" +  this.getDate() +           "/" +  this.getFullYear();       }      

//使用Ajax獲取json數據       var jsonData = $.ajax({         url: '/mySensor/SensorRecord_getSensorRecord',         dataType: 'json',       }).done(function (results) {

 // 將獲取到的json數據分別存放到兩個數組中         var labels = [], data=[];         for(var sensorRecord in results)         {             labels.push(new Date(results[sensorRecord].date).formatMMDDYYYY());             data.push(parseFloat(results[sensorRecord].sensorValue));         }

        // 設置圖表的數據        

var tempData = {           labels : labels,           datasets : [{               label: "溫度",                 fill: true,                 lineTension: 0.1,                 backgroundColor: "rgba(75,192,192,0.4)",                 borderColor: "rgba(75,192,192,1)",                 borderCapStyle: 'butt',                 borderDash: [],                 borderDashOffset: 0.0,                 borderJoinStyle: 'miter',                 pointBorderColor: "rgba(75,192,192,1)",                 pointBackgroundColor: "#fff",                 pointBorderWidth: 1,                 pointHoverRadius: 5,                 pointHoverBackgroundColor: "rgba(75,192,192,1)",                 pointHoverBorderColor: "rgba(220,220,220,1)",                 pointHoverBorderWidth: 2,                 pointRadius: 1,                 pointHitRadius: 10,                 data: data,                 spanGaps: false,           }]         };

        // 獲取所選canvas元素的內容         var ctx = document.getElementById("myChart");         //設置圖表高度         ctx.height=9;                                         

// 初始化一個新的雷達圖         var myLineChart = new Chart(ctx, {             type: 'radar',             data: tempData,             options: {                 maintainAspectRatio: true,             }         });       });     } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 配置JSON數據源   json數據是由Struts2 Action返回的一個包含溫度數據的List,實體包含以下屬性:

private int recordID; private String sensorID; private String sensorValue; private Timestamp date; --------------------- 作者:Bboy-AJ-任傑 來源:CSDN 原文:https://blog.csdn.net/u013201439/article/details/72794408 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

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



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