Highcharts-dynamic-click

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

ポイント追加機能付きチャート

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

ポイント追加機能を備えたチャートの例を以下に示します。

構成

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

chart.events

クリックメソッドを chart.event プロパティに追加します。 このメソッドは、チャート内のクリックされた領域のx、y座標を使用して新しいポイントを系列に追加します。

chart: {
   events: {
      click: function (e) {
        //find the clicked values and the series
         var x = e.xAxis[0].value,
         y = e.yAxis[0].value,
         series = this.series[0];

        //Add it
         series.addPoint([x, y]);
      }
   }
}

*_highcharts_dynamic_click_*
<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: 'scatter',
               margin: [70, 50, 60, 80],

               events: {
                  click: function (e) {
                    //find the clicked values and the series
                     var x = e.xAxis[0].value,
                     y = e.yAxis[0].value,
                     series = this.series[0];

                    //Add it
                     series.addPoint([x, y]);
                  }
               }
            };
            var title = {
               text: 'User supplied data'
            };
            var subtitle = {
               text: 'Click the plot area to add a point. Click a point to remove it.'
            };
            var xAxis = {
               gridLineWidth: 1,
               minPadding: 0.2,
               maxPadding: 0.2,
               maxZoom: 60
            };
            var yAxis = {
               title: {
                  text: 'Value'
               },
               minPadding: 0.2,
               maxPadding: 0.2,
               maxZoom: 60,

               plotLines: [{
                  value: 0,
                  width: 1,
                  color: '#808080'
               }]
            };
            var legend = {
               enabled: false
            };
            var exporting = {
               enabled: false
            };
            var plotOptions = {
               series: {
                  lineWidth: 1,
                  point: {
                     events: {
                        'click': function () {
                           if (this.series.data.length > 1) {
                              this.remove();
                           }
                        }
                     }
                  }
               }
            };
            var series = [{
               data: [[var json = {};
            json.chart = chart;
            json.title = title;
            json.subtitle = subtitle;
            json.xAxis = xAxis;
            json.yAxis = yAxis;
            json.legend = legend;
            json.exporting = exporting;
            json.series = series;
            json.plotOptions = plotOptions;
            $('#container').highcharts(json);
         });
      </script>
   </body>

</html>

結果

結果を確認します。