2016-10-26 4 views
0

ハイハットを使用してマシンの開始および停止のチャートを表示したいとします。例えばマシンの開始時に適切な時間軸を表示できず、スタックされた棒グラフを停止することができません。

、2016年5月7日に23時59分59秒を時間範囲2016年5月1日00:00:00与える、我々は見つける:

マシン開始を2016年5月1日に2016-05-05 10:22:00に停止してから2016-05-06 11:23:00に開始

マシンBを2016-05-01 02:18に開始: 00、次に2016-05-04 20:22:00に停止し、2016-05-07 11:23:00から開始する

マシンCを2016-05-01 03:10:00に開始してから停止する2016-05-03 21:22:00に開始し、2016-05-05 11:23:00から開始します。

時間軸は常に1970-01-01で始まり、min:1451577600000、// 2016-01-01 00:00:00

開始点は正しいが、他の点は間違っている。

以下は私のコードですが、誰でも助けてくれますか?

ありがとうございました。

<!doctype html> 
    <html> 
    <head> 
    <title>Machine Start and Stop</title> 
    <meta charset="utf-8"> 
    <!-- 
    <script src="js/jquery-1.8.3.min.js"></script> 
    <script src="js/highcharts.js"></script> 
    --> 
    <script src="http://www.highcharts.com/lib/jquery-1.7.2.js" type="text/javascript"></script> 
    <script src="https://code.highcharts.com/highcharts.js"></script> 
    </head> 
    <body> 
    <div id="container" style="min-width;400px;height:400px;"></div> 
    <script> 
    $(function() { 
       // Stacked bar chart 
       var chartype = { 
        type: 'bar' 
       } 
       var chartitle = { 
        text: 'Machine Start and Stop Record' 
       } 
       var chartAxisX = { 
        title: { 
         text: 'Machines' 
        }, 
        categories: ['MachineA', 'MachineB', 'MachineC'] 
       } 
       //time format:http://php.net/manual/en/function.strftime.php 
       var chartAxisY = {     
        type: 'datetime', 
        dateTimeLabelFormats:{ 
         minute: '%H:%M', 
         hour: '%H:%M', 
         day: '%Y-%m-%d', 
         month: '%Y-%m', 
         year: '%Y' 
        }, 
        startOnTick:true, 
        //endOnTick:true, 
        //pointStart: 1451577600000,//1451577600000=2016-01-01 00:00:00 
        min: 1451577600000,//2016-01-01 00:00:00 
        title: { 
         text: 'Date time' 
        } 
       } 
       var chartlegend = { 
        reversed: true 
       } 
       var chartplotoptions = { 
        series: { 
         stacking: 'normal'//stacking: 'percent'// 
        } 
       } 
       // -28800000=1970-01-01 00:00:00 
       //1451577600000=2016-01-01 00:00:00 
       //1462032029000=2016-05-01 00:00:29 
       //1462635223000=2016-05-07 23:33:43 
       //1477384800000=2016-10-25 16:40:00 
       //var timeDiff=8*3600*1000; 
       var chartSeries = [{ 
        name: 'Start', 
        color: '#4ba31e', 
        //data: [1, 2, 3] 
        data: [1462032000000, 1462032029000, 1462035029000] 
       }, { 
        name: 'Stop', 
        color: '#FF0000', 
        //data: [4, 5, 6] 
        data: [1462432029000, 1462432529000, 1462439029000] 
       }, { 
        name: 'Start', 
        color: '#4ba31e', 
        //data: [7, 8, 9] 
        data: [1462635223000, 1462635223000, 1462635223000] 
       }] 

       $('#container').highcharts({ 
        chart: chartype, 
        title: chartitle, 
        xAxis: chartAxisX, 
        yAxis: chartAxisY, 
        legend: chartlegend, 
        plotOptions: chartplotoptions, 
        series: chartSeries, 
        credits: { 
         enabled: false 
        }, 
       }); 
      }); 
    </script> 
    </body> 
    <html> 

答えて

0

反転列のチャートを使用できます。次のようになり、マシンのデータを設定する

var chartype = { 
       type: 'columnrange', 
       inverted: true 
      } 

{ 
       name: 'MachineA', 
       data: [{ 
       x: 0, 
       low: Date.UTC(2016, 5, 1, 0, 10), 
       high: Date.UTC(2016, 5, 5, 10, 22), 
       color: 'green' 
       }, { 
       x: 0, 
       low: Date.UTC(2016, 5, 5, 10, 22), 
       high: Date.UTC(2016, 5, 6, 11, 23), 
       color: 'red' 
       }, { 
       x: 0, 
       low: Date.UTC(2016, 5, 6, 11, 23), 
       high: Date.UTC(2016, 5, 8), 
       color: 'green' 
       }] 
      }, 

例:http://jsfiddle.net/r6emu/2792/

+0

おかげで、それは私が欲しいものです。 – Rock

0

このデモを見つけるが、それはただ一つのステータスを表示することができます。

[daily activities chart][1] 


    http://jsfiddle.net/r6emu/2034/ 
関連する問題