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无刷新操作table的行和列
Mar 27 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
JavaScript对象学习小结
Sep 02 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
Aug 03 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
Dec 28 Javascript
Bootstrap图片轮播效果详解
Oct 17 Javascript
javaScript产生随机数的用法小结
Apr 21 Javascript
Node.js中的cluster模块深入解读
Jun 11 Javascript
vue操作下拉选择器获取选择的数据的id方法
Aug 24 Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 Javascript
js console.log打印对象时属性缺失的解决方法
May 23 Javascript
vue视频播放暂停代码
Nov 08 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上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
nodejs初始化init的示例代码
2018/10/10 NodeJs
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
python的构建工具setup.py的方法使用示例
2017/10/23 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
通过实例解析Python调用json模块
2019/12/11 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
西安交大自主招生自荐信
2014/01/27 职场文书
项目投资建议书
2014/05/16 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python