JS绘图Flot如何实现动态可刷新曲线图


Posted in Javascript onOctober 16, 2020

刚刚做的是一个静态的曲线图,只要设置数据,就可以直接显示。下面来做一个根据时间间隔根据新数据一直变的曲线绘图示例。

同样,为了兼容不同浏览器,请一定要引入三个JS文件,否则不保证在IE下的运行。

首先来看一下效果!

JS绘图Flot如何实现动态可刷新曲线图

刷新间隔的实现其实就是定时调用某个函数,这个函数将绘图对象里面的数据更新即可。

我们来看一下代码:

<!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动态曲线</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 () { 
  // 要绘制的数据和数据的数据点数 
  var data = [], totalPoints = 300; 
  // 获得一些随机数据 
  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; // 刷新间隔 
  // 更改刷新间隔时间 
  $("#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); 
    } 
  }); 
  // 设置绘图参数 
  var options = { 
    series: { shadowSize: 0 }, // 绘制线的阴影,不绘制设置 0 
    yaxis: { min: 0, max: 100 }, // Y 轴的最大值最小值 
    xaxis: { show: false } // 不显示 X 轴 
  }; 
  // 绘图对象 参数为:绘制地点、数据、属性 
  var plot = $.plot($("#placeholder"), [ getRandomData() ], options); 
  function update() { 
    // 要实现动态绘图,只需重新设置其数据即可 
    plot.setData([ getRandomData() ]); // 设置数据 
    // 轴线不改变,不用调用 plot.setupGrid() 
    plot.draw(); 
    // 设置调用 
    setTimeout(update, updateInterval); 
  } 
  // 加载调用 
  update(); 
}); 
</script> 
</head> 
<body> 
<div id="placeholder" style="width:600px;height:300px;"></div> 
<br><br> 
刷新时间间隔:<input id="updateInterval" type="text" value="" style="text-align: right; width:5em"> 
</body> 
</html>

输入不同的刷新间隔,绘图的速度会响应的调整。以上示例来自官方,少做修改并加以注释,希望对一些人有所帮助。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Prototype中dom对象方法汇总
Sep 17 Javascript
Js控制弹窗实现在任意分辨率下居中显示
Aug 01 Javascript
document.write()及其输出内容的样式、位置控制
Aug 12 Javascript
jquery中each方法示例和常用选择器
Jul 08 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
Dec 18 Javascript
jquery实现下拉框功能效果【实例代码】
May 06 Javascript
jQuery实现的可编辑表格完整实例
Jun 20 Javascript
JavaScript仿聊天室聊天记录
Dec 27 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
Mar 31 Javascript
js分页之前端代码实现和请求处理
Aug 04 Javascript
深入分析element ScrollBar滚动组件源码
Jan 22 Javascript
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
基于JQuery和DWR实现异步数据传递
Oct 16 #jQuery
JS绘图Flot应用图形绘制异常解决方案
Oct 16 #Javascript
swiper4实现移动端导航栏tab滑动切换
Oct 16 #Javascript
JS highcharts动态柱状图原理及实现
Oct 16 #Javascript
如何手动实现一个 JavaScript 模块执行器
Oct 16 #Javascript
JS highcharts实现动态曲线代码示例
Oct 16 #Javascript
Swiper实现导航栏滚动效果
Oct 16 #Javascript
You might like
浅析php中jsonp的跨域实例
2013/06/21 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PDO::query讲解
2019/01/29 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
深入理解Python爬虫代理池服务
2018/02/28 Python
python对日志进行处理的实例代码
2018/10/06 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
构建高效的python requests长连接池详解
2020/05/02 Python
python输入中文的实例方法
2020/09/14 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
幼儿教师个人求职信范文
2013/09/21 职场文书
中专生自我鉴定范文
2013/12/19 职场文书
一年级家长会邀请函
2014/01/25 职场文书
校长寄语大全
2014/04/09 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
初中家长评语和期望
2014/12/26 职场文书