溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JS使用Flot繪圖如何實(shí)現(xiàn)動態(tài)可刷新曲線圖

發(fā)布時(shí)間:2020-10-27 16:32:10 來源:億速云 閱讀:180 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)JS使用Flot繪圖如何實(shí)現(xiàn)動態(tài)可刷新曲線圖,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

剛剛做的是一個(gè)靜態(tài)的曲線圖,只要設(shè)置數(shù)據(jù),就可以直接顯示。下面來做一個(gè)根據(jù)時(shí)間間隔根據(jù)新數(shù)據(jù)一直變的曲線繪圖示例。

同樣,為了兼容不同瀏覽器,請一定要引入三個(gè)JS文件,否則不保證在IE下的運(yùn)行。

首先來看一下效果!

JS使用Flot繪圖如何實(shí)現(xiàn)動態(tài)可刷新曲線圖

刷新間隔的實(shí)現(xiàn)其實(shí)就是定時(shí)調(diào)用某個(gè)函數(shù),這個(gè)函數(shù)將繪圖對象里面的數(shù)據(jù)更新即可。

我們來看一下代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>Flot動態(tài)曲線</title> 
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="excanvas.min.js"></script><![endif]--> 
<script language="javascript" type="text/javascript" src="jquery.js"></script> 
<script language="javascript" type="text/javascript" src="jquery.flot.js"></script> 
<script type="text/javascript"> 
$(function () { 
  // 要繪制的數(shù)據(jù)和數(shù)據(jù)的數(shù)據(jù)點(diǎn)數(shù) 
  var data = [], totalPoints = 300; 
  // 獲得一些隨機(jī)數(shù)據(jù) 
  function getRandomData() { 
    if (data.length > 0) 
      datadata = data.slice(1); 
    while (data.length < totalPoints) { 
      var prev = data.length > 0 &#63; data[data.length - 1] : 50; 
      var y = prev + Math.random() * 10 - 5; 
      if (y < 0) 
        y = 0; 
      if (y > 100) 
        y = 100; 
      data.push(y); 
    } 
    var res = []; 
    for (var i = 0; i < data.length; ++i) 
      res.push([i, data[i]]) 
    return res; 
  } 
  var updateInterval = 30; // 刷新間隔 
  // 更改刷新間隔時(shí)間 
  $("#updateInterval").val(updateInterval).change(function () { 
    var v = $(this).val(); 
    if (v && !isNaN(+v)) { 
      updateInterval = +v; 
      if (updateInterval < 1) 
        updateInterval = 1; 
      if (updateInterval > 2000) 
        updateInterval = 2000; 
      $(this).val("" + updateInterval); 
    } 
  }); 
  // 設(shè)置繪圖參數(shù) 
  var options = { 
    series: { shadowSize: 0 }, // 繪制線的陰影,不繪制設(shè)置 0 
    yaxis: { min: 0, max: 100 }, // Y 軸的最大值最小值 
    xaxis: { show: false } // 不顯示 X 軸 
  }; 
  // 繪圖對象 參數(shù)為:繪制地點(diǎn)、數(shù)據(jù)、屬性 
  var plot = $.plot($("#placeholder"), [ getRandomData() ], options); 
  function update() { 
    // 要實(shí)現(xiàn)動態(tài)繪圖,只需重新設(shè)置其數(shù)據(jù)即可 
    plot.setData([ getRandomData() ]); // 設(shè)置數(shù)據(jù) 
    // 軸線不改變,不用調(diào)用 plot.setupGrid() 
    plot.draw(); 
    // 設(shè)置調(diào)用 
    setTimeout(update, updateInterval); 
  } 
  // 加載調(diào)用 
  update(); 
}); 
</script> 
</head> 
<body> 
<div id="placeholder" ></div> 
<br><br> 
刷新時(shí)間間隔:<input id="updateInterval" type="text" value="" > 
</body> 
</html> 

輸入不同的刷新間隔,繪圖的速度會響應(yīng)的調(diào)整。以上示例來自官方,少做修改并加以注釋,希望對一些人有所幫助。

看完上述內(nèi)容,你們對JS使用Flot繪圖如何實(shí)現(xiàn)動態(tài)可刷新曲線圖有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI