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中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
用js实现手把手教你月入万刀(转贴)
Nov 07 Javascript
一些不错的js函数ajax
Aug 20 Javascript
推荐10个超棒的jQuery工具提示插件
Oct 11 Javascript
公共js在页面底部加载的注意事项介绍
Jul 18 Javascript
javasript实现密码的隐藏与显示
May 08 Javascript
chrome调试javascript详解
Oct 21 Javascript
jQuery实现的文字hover颜色渐变效果实例
Feb 20 Javascript
Extjs4.0 ComboBox如何实现三级联动
May 11 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
Vue Prop属性功能与用法实例详解
Feb 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
php创建图像具体步骤
2017/03/13 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
很可爱的输入框
2008/08/03 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
JavaScript知识点整理
2015/12/09 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python中安装easy_install的方法
2018/11/18 Python
python浪漫表白源码
2019/04/05 Python
浅析python中while循环和for循环
2019/11/19 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
python中的测试框架
2020/11/13 Python
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
会计电算化专业自荐信
2014/03/15 职场文书
老公出轨后的保证书
2015/05/08 职场文书
2015大学迎新标语
2015/07/16 职场文书
python 对图片进行简单的处理
2021/06/23 Python