jquery.flot.js简单绘制折线图用法示例


Posted in Javascript onMarch 13, 2017

本文实例讲述了jquery.flot.js简单绘制折线图用法。分享给大家供大家参考,具体如下:

1、完整实例代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8'>
    <title>折线图</title>
    <!--[if lte IE 8]>
      <script language="javascript" type="text/javascript" src="js/excanvas.min.js"></script>
    <![endif]-->
    <script language="javascript" type="text/javascript" src="js/jquery.js"></script>
    <script language="javascript" type="text/javascript" src="js/jquery.flot.js"></script>
    <script type="text/javascript">
      $(function() {
        AlPriceQuery();
      });
      function AlPriceQuery(){
        var result = {
          AvgPrice : [14030, 13980, 14060, 14000, 13930, 14030, 13980, 14060, 14000, 13930],
          Date: ["11-1", "11-2", "11-3", "11-4", "11-5", "11-6", "11-7", "11-8", "11-9", "11-10"],
        }
        var DataArr = [];//y轴数据
        var TickArr = [];//x轴自定义刻度数据
        var PriceArr = [];//价格
        for(var i=0; i<result.Date.length; i++){
          DataArr.push([ i+1, result.AvgPrice[i] ]);
          TickArr.push([ i+1, result.Date[i] ]);
          PriceArr.push(result.AvgPrice[i]);
        }
        var MinPrice = PriceArr.sort(function(a, b){return a - b})[0];//获取最小的铝锭价
        if(MinPrice % 20 == 0){
          MinPrice = MinPrice - 20;
        }
        else{
          MinPrice = MinPrice - 30;
        }
        //数据源
        var DataSet = [{
          "label": "最近 " + result.Date.length + " 日铝锭价",
          "data": DataArr,//折线图数据
        }];
        //配置
        var Options = {
          xaxis: {
            ticks: TickArr,//x轴自定义刻度数据
          },
          yaxis: {
            min: MinPrice,//最小刻度
            tickSize: 20,//递增量
          },
          series: {
            lines: {
              show: true,//显示线段
              lineWidth: 1.5,
            },
            points: {
              show: true,//显示节点
              radius: 3,
            },
            color: "#7AC0DA",
          },
          grid: {
            hoverable: true,//鼠标移动到节点会有效果
            borderWidth: 1,//最外边的边框
            backgroundColor: { colors: ["#ffffff", "#EDF5FF"] },
          },
          legend: {
            noColumns: 0,
            labelBoxBorderColor: "#000000",
            position: "sw",
            backgroundOpacity: 0.1,
          },
          shadowSize: 0,//曲线阴影
        };
        //节点hover事件
        $.fn.UseTooltip = function () {
          var PrePoint = null, PreLabel = null;
          $(this).bind("plothover", function (event, pos, item) {
            if (item) {
              if ((PreLabel != item.series.label) || (PrePoint != item.dataIndex)) {
                PrePoint = item.dataIndex;
                PreLabel = item.series.label;
                $("#tooltip").remove();
                $(this).css({
                  "cursor": "pointer"
                })
                if (item.seriesIndex == 0) {
                  ShowTooltip(
                    item.pageX + 100,
                    item.pageY - 10,
                    "#f7d373",
                    result.Date[item.dataIndex] + " 铝锭价: " + item.series.data[item.dataIndex][1]);
                }
              }
            }
            else {
              PrePoint = null;
              PreLabel = null;
              $(this).css({
                "cursor": "auto"
              });
              $("#tooltip").remove();
            }
          });
        };
        if (PriceArr.length > 0) {
          $.plot($("#placeholder"), DataSet, Options);
          $("#placeholder").UseTooltip();
        }
      }
      //提示框
      function ShowTooltip(x, y, color, contents) {
        $('<div id="tooltip">' + contents + '</div>').css({
          position: 'absolute',
          display: 'none',
          top: y - 40,
          left: x - 120,
          border: '2px solid ' + color,
          padding: '3px',
          'font-size': '9px',
          'border-radius': '5px',
          'background-color': '#fff',
          'font-family': 'Verdana, Arial, Helvetica, Tahoma, sans-serif',
          opacity: 0.9
        }).appendTo("body").fadeIn(200);
      }
    </script>
  </head>
  <body>
    <div id="placeholder" style="width:400px;height:200px;"></div>
  </body>
</html>

2、运行效果图如下:

jquery.flot.js简单绘制折线图用法示例

Javascript 相关文章推荐
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 Javascript
jquery ajax跨域解决方法(json方式)
Feb 04 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
javascript禁止访客复制网页内容的实现代码
Aug 05 Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 Javascript
jQuery Easyui实现左右布局
Jan 26 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 Javascript
Javascript中八种遍历方法的执行速度深度对比
Apr 25 Javascript
node跨域请求方法小结
Aug 25 Javascript
Puppeteer环境搭建的详细步骤
Sep 21 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
May 01 Javascript
深入理解Node.js中的进程管理
Mar 13 #Javascript
jQuery简易时光轴实现方法示例
Mar 13 #Javascript
JavaScript评论点赞功能的实现方法
Mar 13 #Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 #Javascript
JS实现含有中文字符串的友好截取功能分析
Mar 13 #Javascript
JS实现直接运行html代码的方法
Mar 13 #Javascript
js从输入框读取内容,比较两个数字的大小方法
Mar 13 #Javascript
You might like
PHP学习资料汇总与网址
2007/03/16 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
js精度溢出解决方案
2012/12/02 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
对python字典元素的添加与修改方法详解
2018/07/06 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
三八妇女节寄语
2015/02/27 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
离婚民事起诉状
2015/08/03 职场文书
公司管理制度范本
2015/08/03 职场文书
六年级作文之预言作文
2019/10/25 职场文书
MySQL基础(一)
2021/04/05 MySQL
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
2021/09/04 SQL Server