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 相关文章推荐
jqPlot 图表中文API使用文档及源码和在线示例
Feb 07 Javascript
Javascript合并表格中具有相同内容单元格示例
Aug 11 Javascript
简单的代码实现jquery定时器
Nov 17 Javascript
jquery动态改变div宽度和高度
Feb 09 Javascript
JS简单编号生成器实现方法(附demo源码下载)
Apr 05 Javascript
node.js中axios使用心得总结
Nov 29 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
ES6 中可以提升幸福度的小功能
Aug 06 Javascript
详解Webpack loader 之 file-loader
Nov 07 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
Apr 10 Javascript
微信小程序地图实现展示线路
Jul 29 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
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python实现一个简单的ping工具方法
2019/01/31 Python
利用python在excel中画图的实现方法
2020/03/17 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
社会实践心得体会
2014/01/03 职场文书
我为自己代言广告词
2014/03/18 职场文书