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 相关文章推荐
jquery api参考 visualjquery 中国线路 速度快
Nov 30 Javascript
基于jQuery的表格操作插件
Apr 22 Javascript
JS维吉尼亚密码算法实现代码
Nov 09 Javascript
用jquery.sortElements实现table排序
May 04 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
Node.js批量给图片加水印的方法
Nov 15 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
layer.open组件获取弹出层页面变量、函数的实例
Sep 25 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 Javascript
vue模块移动组件的实现示例
May 20 Javascript
vue内置组件component--通过is属性动态渲染组件操作
Jul 28 Javascript
基于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面向对象分析设计的61条军规小结
2010/07/17 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
2015/07/15 PHP
php单例模式的简单实现方法
2016/06/10 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
JS实现标签页效果(配合css)
2013/04/03 Javascript
javascript闭包入门示例
2014/04/30 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
2016/03/31 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
nodejs 如何手动实现服务器
2018/08/20 NodeJs
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Python PyQt5标准对话框用法示例
2017/08/23 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
django中media媒体路径设置的步骤
2019/11/15 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
用python实现学生管理系统
2020/07/24 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
2014年迎新年活动方案
2014/02/19 职场文书
农民工讨薪标语
2014/06/26 职场文书
毕业生对母校寄语
2015/02/26 职场文书
详解Golang如何优雅的终止一个服务
2022/03/21 Golang