Highcharts-dynamic-spline

提供:Dev Guides
移動先:案内検索

毎秒更新されるスプラインチャート

link:/highcharts/highcharts_configuration_syntax [Highcharts設定構文]の章でチャートを描画するために使用される設定はすでに見ました。

毎秒更新するスプラインチャートの例を以下に示します。

構成

ここで、追加の構成/実行された手順を見てみましょう。

chart.events

*chart.event* プロパティにロードメソッドを追加します。 このメソッドは、1000ミリ秒の間隔でランダムに作成された新しいポイントをシリーズに追加します。
chart: {
   events: {
      load: function () {
        //set up the updating of the chart each second
         var series = this.series[0];

         setInterval(function () {
            var x = (new Date()).getTime(),//current time
            y = Math.random();
            series.addPoint([x, y], true, true);
         }, 1000);
      }
   }
}

*_highcharts_dynamic_spline_*
<html>
   <head>
      <title>Highcharts Tutorial</title>
      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
      <script src = "https://code.highcharts.com/highcharts.js"></script>
   </head>

   <body>
      <div id = "container" style = "width: 550px; height: 400px; margin: 0 auto"></div>
      <script language = "JavaScript">
         $(document).ready(function() {
            var chart = {
               type: 'spline',
               animation: Highcharts.svg,//don't animate in IE < IE 10.
               marginRight: 10,

               events: {
                  load: function () {
                    //set up the updating of the chart each second
                     var series = this.series[0];

                     setInterval(function () {
                        var x = (new Date()).getTime(),//current time
                        y = Math.random();
                        series.addPoint([x, y], true, true);
                     }, 1000);
                  }
               }
            };
            var title = {
               text: 'Live random data'
            };
            var xAxis = {
               type: 'datetime',
               tickPixelInterval: 150
            };
            var yAxis = {
               title: {
                  text: 'Value'
               },
               plotLines: [{
                  value: 0,
                  width: 1,
                  color: '#808080'
               }]
            };
            var tooltip = {
               formatter: function () {
               return '<b>' + this.series.name + '</b><br/>' +
                  Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
                  Highcharts.numberFormat(this.y, 2);
               }
            };
            var plotOptions = {
               area: {
                  pointStart: 1940,
                  marker: {
                     enabled: false,
                     symbol: 'circle',
                     radius: 2,

                     states: {
                        hover: {
                           enabled: true
                        }
                     }
                  }
               }
            };
            var legend = {
               enabled: false
            };
            var exporting = {
               enabled: false
            };
            var series = [{
               name: 'Random data',
               data: (function () {
                 //generate an array of random data
                  var data = [],time = (new Date()).getTime(),i;

                  for (i = -19; i <= 0; i += 1) {
                     data.push({
                        x: time + i * 1000,
                        y: Math.random()
                     });
                  }
                  return data;
               }())
            }];

            var json = {};
            json.chart = chart;
            json.title = title;
            json.tooltip = tooltip;
            json.xAxis = xAxis;
            json.yAxis = yAxis;
            json.legend = legend;
            json.exporting = exporting;
            json.series = series;
            json.plotOptions = plotOptions;

            Highcharts.setOptions({
               global: {
                  useUTC: false
               }
            });
            $('#container').highcharts(json);
         });
      </script>
   </body>

</html>

結果

結果を確認します。