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 相关文章推荐
JavaScript去掉空格的方法集合
Dec 28 Javascript
JQuery动画animate的stop方法使用详解
May 09 Javascript
js实现图片从左往右渐变切换效果的方法
Feb 06 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
js实现固定显示区域内自动缩放图片的方法
Jul 18 Javascript
JavaScript关于提高网站性能的几点建议(一)
Jul 24 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
May 26 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
Angular实现可删除并计算总金额的购物车功能示例
Dec 26 Javascript
原生JS实现简单的倒计时功能示例
Aug 30 Javascript
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
Vue 封装防刷新考试倒计时组件的实现
Jun 05 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 curl实现抓取302跳转后页面的示例
2014/07/04 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
治超工作实施方案
2014/05/04 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
早读课迟到检讨书
2014/09/25 职场文书
信用卡工资证明范本
2014/10/17 职场文书
2014年信访工作总结
2014/11/17 职场文书
保证书格式
2015/01/16 职场文书
2015大学生求职信范文
2015/03/20 职场文书
培训通知书模板
2015/04/17 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python