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 相关文章推荐
关于图片验证码设计的思考
Jan 29 Javascript
Javascript开发之三数组对象实例介绍
Nov 12 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
Jan 18 Javascript
ie下js不执行的几种可能
Feb 28 Javascript
基于vue.js的分页插件详解
Nov 27 Javascript
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
Sep 04 Javascript
如何在wxml中直接写js代码(wxs)
Nov 14 Javascript
js实现html滑动图片拼图验证
Jun 24 Javascript
如何利用JS将手机号中间四位变成*号
Sep 29 Javascript
JavaScript实现网页留言板功能
Nov 23 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作的文本留言本的例子(六)
2006/10/09 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
简单的自定义php模板引擎
2016/08/26 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
numpy基础教程之np.linalg
2019/02/12 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
如何表示python中的相对路径
2020/07/08 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
手术室护士自我鉴定
2013/10/14 职场文书
高中毕业自我鉴定
2013/12/13 职场文书
高中数学教学反思
2014/01/30 职场文书
工作过失检讨书
2014/02/23 职场文书
文明生主要事迹
2014/05/25 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
管理失职检讨书
2015/05/05 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
汶川大地震感悟
2015/08/10 职场文书
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技