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 相关文章推荐
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
Jan 24 Javascript
javascript抖动元素的小例子
Oct 28 Javascript
ExtJS4 动态生成的grid导出为excel示例
May 02 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 Javascript
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
微信小程序实现发红包功能
Jul 11 Javascript
解决vue-cli webpack打包后加载资源的路径问题
Sep 25 Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 Javascript
Vue表单控件数据绑定方法详解
Feb 05 Javascript
查找Vue中下标的操作(some和findindex)
Aug 12 Javascript
idea编译器vue缩进报错问题场景分析
Jul 04 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 gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
PHP getName()函数讲解
2019/02/03 PHP
实例讲解PHP表单验证功能
2019/02/15 PHP
PHP goto语句用法实例
2019/08/06 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
深入了解js原型模式
2019/05/30 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
线程和进程的区别及Python代码实例
2015/02/04 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
python numpy数组复制使用实例解析
2020/01/10 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
会计专业毕业生自我鉴定
2013/10/29 职场文书
医学专业大学生求职的自我评价
2013/11/27 职场文书
基层工作经历证明
2014/01/13 职场文书
年级组长自我鉴定
2014/02/22 职场文书
大学专科求职信
2014/07/02 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
毕业论文致谢词
2015/05/14 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
歌咏比赛口号大全
2015/12/25 职场文书