JS繪圖Flot如何實(shí)現(xiàn)動(dòng)態(tài)可刷新曲線圖
剛剛做的是一個(gè)靜態(tài)的曲線圖,只要設(shè)置數(shù)據(jù),就可以直接顯示。下面來做一個(gè)根據(jù)時(shí)間間隔根據(jù)新數(shù)據(jù)一直變的曲線繪圖示例。
同樣,為了兼容不同瀏覽器,請(qǐng)一定要引入三個(gè)JS文件,否則不保證在IE下的運(yùn)行。
首先來看一下效果!

刷新間隔的實(shí)現(xiàn)其實(shí)就是定時(shí)調(diào)用某個(gè)函數(shù),這個(gè)函數(shù)將繪圖對(duì)象里面的數(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動(dòng)態(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 ? 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 軸
};
// 繪圖對(duì)象 參數(shù)為:繪制地點(diǎn)、數(shù)據(jù)、屬性
var plot = $.plot($("#placeholder"), [ getRandomData() ], options);
function update() {
// 要實(shí)現(xiàn)動(dòng)態(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" style="width:600px;height:300px;"></div>
<br><br>
刷新時(shí)間間隔:<input id="updateInterval" type="text" value="" style="text-align: right; width:5em">
</body>
</html>
輸入不同的刷新間隔,繪圖的速度會(huì)響應(yīng)的調(diào)整。以上示例來自官方,少做修改并加以注釋,希望對(duì)一些人有所幫助。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp(javascript)全角半角轉(zhuǎn)換代碼 dbc2sbc
asp與javascript 全角半角處理代碼2009-08-08
javascript實(shí)現(xiàn)添加附件功能的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)添加附件功能的方法,在我們編輯信息時(shí),有時(shí)候需要附加文件、圖片實(shí)現(xiàn)上傳功能,通過本文了解javascript是如何實(shí)現(xiàn)附加功能的,請(qǐng)閱讀。2015-11-11
php和js對(duì)數(shù)據(jù)庫圖片進(jìn)行等比縮放示例
這篇文章主要介紹了php和js如何對(duì)數(shù)據(jù)庫圖片進(jìn)行等比縮放,需要的朋友可以參考下2014-04-04
javascript數(shù)組去重方法終極總結(jié)
這篇文章主要介紹了javascript數(shù)組去重終極總結(jié),本文列舉了3種javascript數(shù)組去重方法,并分別分析了它們的優(yōu)缺點(diǎn),需要的朋友可以參考下2014-06-06
JavaScript 斐波那契數(shù)列 倒序輸出 輸出100以內(nèi)的質(zhì)數(shù)代碼實(shí)例
這篇文章主要介紹了JavaScript 斐波那契數(shù)列 倒序輸出 輸出100以內(nèi)的質(zhì)數(shù)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
JS中LocalStorage與SessionStorage五種循序漸進(jìn)的使用方法
這篇文章主要介紹了JS中LocalStorage與SessionStorage五種循序漸進(jìn)的使用方法,需要的朋友可以參考下2017-07-07

