zoukankan      html  css  js  c++  java
  • Highcharts 测量图;Highcharts 圆形进度条式测量图;Highcharts 时钟;Highcharts 双轴车速表;Highcharts 音量表(VU Meter)


    配置

    chart.type 配置

    配置 chart 的 type 为 'gauge' 。chart.type 描述了图表类型。默认值为 "line"。

    var chart = {
       type: 'guage'
    };
    

    pane 配置

    pane 只适用在极坐标图和角度测量仪。此可配置对象持有组合x轴和y周的常规选项。每个x轴和y轴都可以通过索引关联到窗格中。

    var pane = {
      startAngle: -150,  // x轴或测量轴的开始度数,以度数的方式给出。0是北
      endAngle: 150      //x轴极坐标或角度轴的最终度数,以度数的方式给出。0是北
    };
    

    实例

    文件名:highcharts_guage_angular.htm

    <html>
    <head>
    <meta charset="UTF-8" />
    <title>Highcharts 教程 | 菜鸟教程(runoob.com)</title>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <script src="http://code.highcharts.com/highcharts-more.js"></script>    
    </head>
    <body>
    <div id="container" style=" 550px; height: 400px; margin: 0 auto"></div>
    <script language="JavaScript">
    $(document).ready(function() {  
       var chart = {      
          type: 'gauge',
          plotBackgroundColor: null,
          plotBackgroundImage: null,
          plotBorderWidth: 0,
          plotShadow: false
       };
       var title = {
          text: '车速表'   
       };     
    
       var pane = {
          startAngle: -150,
          endAngle: 150,
          background: [{
             backgroundColor: {
                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
                stops: [
                   [0, '#FFF'],
                   [1, '#333']
                ]
             },
             borderWidth: 0,
             outerRadius: '109%'
          }, {
             backgroundColor: {
                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
                stops: [
                   [0, '#333'],
                   [1, '#FFF']
                ]
             },
             borderWidth: 1,
             outerRadius: '107%'
         }, {
             // default background
         }, {
             backgroundColor: '#DDD',
             borderWidth: 0,
             outerRadius: '105%',
             innerRadius: '103%'
         }]
       };
    
       // the value axis
       var yAxis = {
          min: 0,
          max: 200,
    
          minorTickInterval: 'auto',
          minorTickWidth: 1,
          minorTickLength: 10,
          minorTickPosition: 'inside',
          minorTickColor: '#666',
    
          tickPixelInterval: 30,
          tickWidth: 2,
          tickPosition: 'inside',
          tickLength: 10,
          tickColor: '#666',
          labels: {
             step: 2,
             rotation: 'auto'
          },
          title: {
             text: 'km/h'
          },
          plotBands: [{
             from: 0,
             to: 120,
             color: '#55BF3B' // green
          }, {
             from: 120,
             to: 160,
             color: '#DDDF0D' // yellow
          }, {
             from: 160,
             to: 200,
             color: '#DF5353' // red
          }]
       };
    
       var series= [{
            name: 'Speed',
            data: [80],
            tooltip: {
               valueSuffix: ' km/h'
            }
       }];     
          
       var json = {};   
       json.chart = chart; 
       json.title = title;       
       json.pane = pane; 
       json.yAxis = yAxis; 
       json.series = series;     
       
       // Add some life
       var chartFunction = function (chart) {
          if (!chart.renderer.forExport) {
             setInterval(function () {
             var point = chart.series[0].points[0], newVal, inc = Math.round((Math.random() - 0.5) * 20);
             newVal = point.y + inc;
             if (newVal < 0 || newVal > 200) {
                newVal = point.y - inc;
             }
             point.update(newVal);
             }, 3000);
          }
       };
       
       $('#container').highcharts(json,chartFunction);
    });
    </script>
    </body>
    </html>
    

    以上实例输出结果为:

    Highcharts 圆形进度条式测量图


    配置

    chart.type 配置

    配置 chart 的 type 为 'solidguage' 。chart.type 描述了图表类型。默认值为 "line"。

    var chart = {
       type: 'solidguage'
    };
    

    pane 配置

    pane 只适用在极坐标图和角度测量仪。此可配置对象持有组合x轴和y周的常规选项。每个x轴和y轴都可以通过索引关联到窗格中。

    var pane = {
      startAngle: -150,  // x轴或测量轴的开始度数,以度数的方式给出。0是北
      endAngle: 150      //x轴极坐标或角度轴的最终度数,以度数的方式给出。0是北
    };
    

    实例

    文件名:highcharts_guage_solid.htm

    <html>
    <head>
    <meta charset="UTF-8" />
    <title>Highcharts 教程 | 菜鸟教程(runoob.com)</title>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <script src="http://code.highcharts.com/highcharts-more.js"></script>    
    <script src="http://code.highcharts.com/modules/solid-gauge.js"></script>
    </head>
    <body>
    <div style=" 600px; height: 400px; margin: 0 auto">
        <div id="container-speed" style=" 300px; height: 200px; float: left"></div>
        <div id="container-rpm" style=" 300px; height: 200px; float: left"></div>
    </div>
    <script language="JavaScript">
    $(document).ready(function() {  
       var chart = {      
          type: 'solidgauge'
       };
       var title = null;
    
       var pane = {
          center: ['50%', '85%'],
          size: '140%',
          startAngle: -90,
          endAngle: 90,
          background: {
             backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '#EEE',
             innerRadius: '60%',
             outerRadius: '100%',
             shape: 'arc'
          }
       };
    
       var tooltip = {
          enabled: false
       };
          
       // the value axis
       var yAxis = {
          stops: [
             [0.1, '#55BF3B'], // green
             [0.5, '#DDDF0D'], // yellow
             [0.9, '#DF5353'] // red
          ],
          lineWidth: 0,
          minorTickInterval: null,
          tickPixelInterval: 400,
          tickWidth: 0,
          title: {
             y: -70
          },
          labels: {
             y: 16
          },
          min: 0,
          max: 200,
          title: {
             text: 'Speed'
          }
       };      
       
       var plotOptions = {
          solidgauge: {
             dataLabels: {
                y: 5,
                borderWidth: 0,
                useHTML: true
             }
          }
       };
       
       var credits = {
          enabled: false
       };
    
       var series = [{
          name: 'Speed',
          data: [80],
          dataLabels: {
             format: '<div style="text-align:center"><span style="font-size:25px;color:' +
             ((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') + '">{y}</span><br/>' +
             '<span style="font-size:12px;color:silver">km/h</span></div>'
          },
          tooltip: {
             valueSuffix: ' km/h'
          }
       }];
          
       var json = {};   
       json.chart = chart; 
       json.title = title;       
       json.pane = pane; 
       json.tooltip = tooltip; 
       json.yAxis = yAxis; 
       json.credits = credits; 
       json.series = series;     
       $('#container-speed').highcharts(json);   
       
       
       // the value axis
       yAxis = {
          stops: [
             [0.1, '#55BF3B'], // green
             [0.5, '#DDDF0D'], // yellow
             [0.9, '#DF5353'] // red
          ],
          lineWidth: 0,
          minorTickInterval: null,
          tickPixelInterval: 400,
          tickWidth: 0,
          title: {
             y: -70
          },
          labels: {
             y: 16
          },
          min: 0,
          max: 5,
          title: {
             text: 'RPM'
          }
       };      
       
       series = [{
          name: 'RPM',
          data: [1],
          dataLabels: {
             format: '<div style="text-align:center"><span style="font-size:25px;color:' +
             ((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') + '">{y:.1f}</span><br/>' +
             '<span style="font-size:12px;color:silver">* 1000 / min</span></div>'
          },
          tooltip: {
             valueSuffix: ' revolutions/min'
          }
       }];
       
       json.yAxis = yAxis;   
       json.series = series;     
       $('#container-rpm').highcharts(json);  
       
       var chartFunction = function() {
          // Speed
          var chart = $('#container-speed').highcharts();
          var point;
          var newVal;
          var inc;
    
          if (chart) {
             point = chart.series[0].points[0];
             inc = Math.round((Math.random() - 0.5) * 100);
             newVal = point.y + inc;
    
             if (newVal < 0 || newVal > 200) {
                newVal = point.y - inc;
             }
             point.update(newVal);
          }
    
          // RPM
          chart = $('#container-rpm').highcharts();
          if (chart) {
             point = chart.series[0].points[0];
             inc = Math.random() - 0.5;
             newVal = point.y + inc;
    
             if (newVal < 0 || newVal > 5) {
                newVal = point.y - inc;
             }
    
             point.update(newVal);
          }
       };   
       
       // Bring life to the dials
       setInterval(chartFunction, 2000);
    });
    </script>
    </body>
    </html>
    

    以上实例输出结果为:

     

    Highcharts 时钟


    配置

    chart.type 配置

    配置 chart 的 type 为 'gauge' 。chart.type 描述了图表类型。默认值为 "line"。

    var chart = {
       type: 'gauge'
    };

    pane 配置

    pane 只适用在极坐标图和角度测量仪。此可配置对象持有组合x轴和y周的常规选项。每个x轴和y轴都可以通过索引关联到窗格中。

    var pane = {
      startAngle: -150,  // x轴或测量轴的开始度数,以度数的方式给出。0是北
      endAngle: 150      //x轴极坐标或角度轴的最终度数,以度数的方式给出。0是北
    };

    实例

    文件名:highcharts_guage_clock.htm

    <html>
    <head>
    <meta charset="UTF-8" />
    <title>Highcharts 教程 | 菜鸟教程(runoob.com)</title>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <script src="http://code.highcharts.com/highcharts-more.js"></script>   
    </head>
    <body>
    <div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div>
    <script language="JavaScript">
    $(document).ready(function() {  
      
       /**
       * 获取当前时间
       */
       function getNow() {
          var now = new Date();
          return {
             hours: now.getHours() + now.getMinutes() / 60,
             minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600,
             seconds: now.getSeconds() * 12 / 60
          };
       }
    
       /**
       * Pad numbers
       */
       function pad(number, length) {
          // Create an array of the remaining length + 1 and join it with 0's
          return new Array((length || 2) + 1 - String(number).length).join(0) + number;
       }
    
       var now = getNow();
    
    
       var chart = {      
          type: 'gauge',
          plotBackgroundColor: null,
          plotBackgroundImage: null,
          plotBorderWidth: 0,
          plotShadow: false,
          height: 200
       };
       var credits = {
          enabled: false
       };
    
       var title = {
          text: 'Highcharts 时钟'
       };
    
       var pane = {
          background: [{
             // default background
          }, {
             // reflex for supported browsers
             backgroundColor: Highcharts.svg ? {
                radialGradient: {
                   cx: 0.5,
                   cy: -0.4,
                   r: 1.9
                },
                stops: [
                   [0.5, 'rgba(255, 255, 255, 0.2)'],
                   [0.5, 'rgba(200, 200, 200, 0.2)']
                ]
             } : null
          }]
       };
    
       // the value axis
       var yAxis = {
          labels: {
             distance: -20
          },
          min: 0,
          max: 12,
          lineWidth: 0,
          showFirstLabel: false,
          minorTickInterval: 'auto',
          minorTickWidth: 1,
          minorTickLength: 5,
          minorTickPosition: 'inside',
          minorGridLineWidth: 0,
          minorTickColor: '#666',
    
          tickInterval: 1,
          tickWidth: 2,
          tickPosition: 'inside',
          tickLength: 10,
          tickColor: '#666',
          title: {
             text: 'Powered by<br/>Highcharts',
             style: {
                color: '#BBB',
                fontWeight: 'normal',
                fontSize: '8px',
                lineHeight: '10px'
             },
             y: 10
          }};var tooltip ={
          formatter:function(){returnthis.series.chart.tooltipText;}};var series=[{
          data:[{
             id:'hour',
             y: now.hours,
             dial:{
                radius:'60%',
                baseWidth:4,
                baseLength:'95%',
                rearLength:0}},{
             id:'minute',
             y: now.minutes,
             dial:{
                baseLength:'95%',
                rearLength:0}},{
             id:'second',
             y: now.seconds,
             dial:{
                radius:'100%',
                baseWidth:1,
                rearLength:'20%'}}],
          animation:false,
          dataLabels:{
             enabled:false}}];var json ={};   
       json.chart = chart; 
       json.credits = credits;
       json.title = title;       
       json.pane = pane; 
       json.yAxis = yAxis; 
       json.tooltip = tooltip; 
       json.series = series;   
       $('#container').highcharts(json, chartFunction);// Add some lifevar chartFunction =function(chart){
          setInterval(function(){
             now = getNow();var hour = chart.get('hour'),
             minute = chart.get('minute'),
             second = chart.get('second'),// run animation unless we're wrapping around from 59 to 0
             animation = now.seconds ===0?false:{ easing:'easeOutElastic'};// Cache the tooltip text
             chart.tooltipText = pad(Math.floor(now.hours),2)+':'+ 
             pad(Math.floor(now.minutes *5),2)+':'+
             pad(now.seconds *5,2);
    
             hour.update(now.hours,true, animation);
             minute.update(now.minutes,true, animation);
             second.update(now.seconds,true, animation);},1000);};});// Extend jQuery with some easing (copied from jQuery UI)
    $.extend($.easing,{
       easeOutElastic:function(x, t, b, c, d){var s=1.70158;var p=0;var a=c;if(t==0)return b;  
          if((t/=d)==1)return b+c;  
          if(!p) p=d*.3;if(a <Math.abs(c)){ a=c;var s=p/4;}else 
             var s = p/(2*Math.PI)*Math.asin (c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p )+ c + b;}});</script></body></html>

    以上实例输出结果为:

     

    Highcharts 双轴车速表


    配置

    chart.type 配置

    配置 chart 的 type 为 'gauge' 。chart.type 描述了图表类型。默认值为 "line"。

    var chart = {
       type: 'gauge'
    };
    

    pane 配置

    pane 只适用在极坐标图和角度测量仪。此可配置对象持有组合x轴和y周的常规选项。每个x轴和y轴都可以通过索引关联到窗格中。

    var pane = {
      startAngle: -150,  // x轴或测量轴的开始度数,以度数的方式给出。0是北
      endAngle: 150      //x轴极坐标或角度轴的最终度数,以度数的方式给出。0是北
    };
    

    实例

    文件名:highcharts_guage_dualaxes.htm

    <html>
    <head>
    <meta charset="UTF-8" />
    <title>Highcharts 教程 | 菜鸟教程(runoob.com)</title>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <script src="http://code.highcharts.com/highcharts-more.js"></script>     
    </head>
    <body>
    <div id="container" style=" 550px; height: 400px; margin: 0 auto"></div>
    <script language="JavaScript">
    $(document).ready(function() {  
       var chart = {      
          type: 'gauge',
          plotBackgroundColor: null,
          plotBackgroundImage: null,
          plotBorderWidth: 0,
          plotShadow: false     
       };
       var credits = {
          enabled: false
       };
    
       var title = {
          text: '双轴车速表'
       };
    
       var pane = {
          startAngle: -150,
          endAngle: 150
       };
    
       // the value axis
       var yAxis = [{
          min: 0,
          max: 200,
          lineColor: '#339',
          tickColor: '#339',
          minorTickColor: '#339',
          offset: -25,
          lineWidth: 2,
          labels: {
             distance: -20,
             rotation: 'auto'
          },
          tickLength: 5,
          minorTickLength: 5,
          endOnTick: false
       }, {
          min: 0,
          max: 124,
          tickPosition: 'outside',
          lineColor: '#933',
          lineWidth: 2,
          minorTickPosition: 'outside',
          tickColor: '#933',
          minorTickColor: '#933',
          tickLength: 5,
          minorTickLength: 5,
          labels: {
             distance: 12,
             rotation: 'auto'
          },
          offset: -20,
          endOnTick: false
       }];
       
       var series= [{
          name: 'Speed',
          data: [80],
          dataLabels: {
             formatter: function () {
                var kmh = this.y,
                mph = Math.round(kmh * 0.621);
                return '<span style="color:#339">' + kmh + ' km/h</span><br/>' +
                   '<span style="color:#933">' + mph + ' mph</span>';
             },
             backgroundColor: {
                linearGradient: {
                   x1: 0,
                   y1: 0,
                   x2: 0,
                   y2: 1
                },
                stops: [
                   [0, '#DDD'],
                   [1, '#FFF']
                ]
             }
          },
          tooltip: {
             valueSuffix: ' km/h'
          }
       }];     
          
       var json = {};   
       json.chart = chart; 
       json.credits = credits;
       json.title = title;       
       json.pane = pane; 
       json.yAxis = yAxis;    
       json.series = series;      
       
       // Add some life
       var chartFunction = function (chart) {
          setInterval(function () {
             var point = chart.series[0].points[0],
             newVal,
             inc = Math.round((Math.random() - 0.5) * 20);
    
             newVal = point.y + inc;
             if (newVal < 0 || newVal > 200) {
                newVal = point.y - inc;
             }
             point.update(newVal);
          }, 3000);
       };
       
       $('#container').highcharts(json, chartFunction);  
    });
    </script>
    </body>
    </html>
    

    以上实例输出结果为:

  • 相关阅读:
    别再为了this发愁了------JS中的this机制
    offsetLeft,Left,clientLeft的区别
    下拉菜单的实现classList.add() classList.remove() class属性的添加和删除
    for循环
    html的基本数据类型(数字,字符串, 列表, 字典)
    定时器setInterval, innerText获取文本, charAt()获取单个字符串, substring(1, content.length)获取范围内的字符串, 实现字符串的滚动效果
    定时器 setInterval(‘function()’, 2000)
    parseInt 和 parseFloat 实现字符串转换为数字
    javarscript在HTML中的调用方式 (直接调用 和文件调用)
    input文本框 放上图片img 通过padding relative和absolute 的实现
  • 原文地址:https://www.cnblogs.com/xuaijun/p/7909480.html
Copyright © 2011-2022 走看看