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类
Sep 08 Javascript
javascript英文日期(有时间)选择器
May 02 Javascript
javascript实现信息增删改查的方法
Jul 25 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
Dec 29 Javascript
微信JS接口大全
Aug 25 Javascript
AngularJS压缩JS技巧分析
Nov 08 Javascript
如何在js代码中消灭for循环实例详解
Jul 29 Javascript
VueQuillEditor富文本上传图片(非base64)
Jun 03 Javascript
javascript实现贪吃蛇小练习
Jul 05 Javascript
vue自定义指令和动态路由实现权限控制
Aug 28 Javascript
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
JS中如何优雅的使用async await详解
Oct 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学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
python处理按钮消息的实例详解
2017/07/11 Python
Python扩展内置类型详解
2018/03/26 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
Python如何实现远程方法调用
2020/08/07 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
廉洁自律承诺书
2014/03/27 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
力学专业求职信
2014/07/23 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
心得体会格式及范文
2016/01/25 职场文书
教师师德承诺书2016
2016/03/25 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python