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 相关文章推荐
location.href语句与火狐不兼容的问题
Jul 04 Javascript
创建公共调用 jQuery Ajax 带返回值
Aug 01 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
Nov 12 Javascript
jQuery实现瀑布流的取巧做法分享
Jan 12 Javascript
js代码验证手机号码和电话号码是否合法
Jul 30 Javascript
js实现选中复选框文字变色的方法
Aug 14 Javascript
JavaScript用构造函数如何获取变量的类型名
Dec 23 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
Mar 08 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
Dec 11 jQuery
JavaScript实现美化滑块效果
May 17 Javascript
jquery简易手风琴插件的封装
Oct 13 jQuery
Array.filter中如何正确使用Async
Nov 04 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获取金书网的书名的实现代码
2010/06/11 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
Ubuntu下安装PyV8
2016/03/13 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
pytorch梯度剪裁方式
2020/02/04 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
物业公司采购员岗位职责
2013/12/31 职场文书
岗位竞聘演讲稿
2014/01/10 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
软环境建设心得体会
2014/09/09 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers