Почему эти два звонка Highcharts производят разные диаграммы розового ветра - PullRequest
0 голосов
/ 15 июня 2019

Ниже приведен html-файл, в котором есть возможность создать диаграмму «Роза ветров» с такими же точными данными и атрибутами. Проблема в том, что есть два вызова для создания диаграмм роз ветров new Highcharts.StockChart(commonOptions) и Highcharts.chart('container'). Если вы посмотрите на обе диаграммы, вы увидите, что они создают разные диаграммы (главным образом в том, как отображаются подсказки). Первый вызов отображает все всплывающие подсказки и одновременно, а второй вызов создает обычные всплывающие подсказки. Должны быть какие-то опции, которые вызывают это, но после многих часов не смогли найти его.

<!DOCTYPE html>
<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script src="https://code.highcharts.com/stock/highstock.js"></script>
        <script src="https://code.highcharts.com/stock/highcharts-more.js"></script>
        <script type="text/javascript">
            window.onload = function() {

    var categories = ['N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW'];
    var commonOptions = {
       chart: {
        renderTo: 'container',
        polar: true,
        type: 'column'
      },
      xAxis: {
        min: 0,
        max: 360,
        tickInterval: 22.5,
        tickmarkPlacement: 'on',
        labels: {
          formatter: function() {
            return categories[parseInt(this.value / 22.5)] ;
          }
        }
      },
      yAxis: {
        min: 0,
        endOnTick: false,
        reversedStacks: false
      },
      plotOptions: {
        series: {
          stacking: 'normal',
          shadow: false,
          groupPadding: 0,
          pointPlacement: 'on'
        }
      },
  rangeSelector: {enabled:false},
  navigator: {enabled: false},
    scrollbar: {enabled: false},
        series: [{ name:"a",
        data: [{x: 0, y: 5}, {x: 22.5,y: 3}, {x: 45,y: 4}, {x: 67.5, y: 2}, {x: 90,y: 9}, {x: 112.5, y: 2}, {x: 135,y: 8}, {x: 157.5,y: 9}, {x: 180,y: 2}]}, {
        name:"b",
        data: [{x: 0,y: 2}, {x: 22.5,y: 6}, {x: 45,y: 1}, {x: 67.5,y: 9}, {x: 90,y: 9}, {x: 112.5,y: 3}, {x: 135,y: 5}, {x: 157.5,y: 3}, {x: 180,y: 7}]}, {
        name:"C",
        data: [{x: 0,y: 5}, {x: 22.5,y: 3}, {x: 45,y: 4}, {x: 67.5, y: 2}, {x: 90,y: 9}, {x: 112.5,y: 2}, {x: 135,y: 8}, {x: 157.5,y: 9}, {x: 180,y: 2}]}]

    var chart = new Highcharts.StockChart(commonOptions);
    });

    Highcharts.chart('container1', {
      chart: {
        polar: true,
        type: 'column'
      },
      xAxis: {
        min: 0,
        max: 360,
        tickInterval: 22.5,
        tickmarkPlacement: 'on',
        labels: {
          formatter: function() {
            return categories[this.value / 22.5];
          }
        }
      },
      yAxis: {
        min: 0,
        endOnTick: false,
        reversedStacks: false
      },
      plotOptions: {
        series: {
          stacking: 'normal',
          shadow: false,
          groupPadding: 0,
          pointPlacement: 'on'
        }
      },
  rangeSelector: {enabled:false},
  navigator: {enabled: false},
    scrollbar: {enabled: false},
      series: [{ name:"a",
        data: [{x: 0, y: 5}, {x: 22.5,y: 3}, {x: 45,y: 4}, {x: 67.5, y: 2}, {x: 90,y: 9}, {x: 112.5, y: 2}, {x: 135,y: 8}, {x: 157.5,y: 9}, {x: 180,y: 2}]}, {
        name:"b",
        data: [{x: 0,y: 2}, {x: 22.5,y: 6}, {x: 45,y: 1}, {x: 67.5,y: 9}, {x: 90,y: 9}, {x: 112.5,y: 3}, {x: 135,y: 5}, {x: 157.5,y: 3}, {x: 180,y: 7}]}, {
        name:"C",
        data: [{x: 0,y: 5}, {x: 22.5,y: 3}, {x: 45,y: 4}, {x: 67.5, y: 2}, {x: 90,y: 9}, {x: 112.5,y: 2}, {x: 135,y: 8}, {x: 157.5,y: 9}, {x: 180,y: 2}]}]
    });
    }
        </script>
    </head>
    <body>
        <div id="container" style="min-width: 420px; max-width: 600px; height: 400px; margin: 0 auto"></div>
        <div id="container1" style="min-width: 420px; max-width: 600px; height: 400px; margin: 0 auto"></div>
    </body>
</html>

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Эти различия обусловлены тем, что вы использовали два разных типа конструктора диаграмм:

Highcharts.stockChart([renderTo], options);

Highcharts.chart([renderTo], options);

Highstock основан на Highcharts, что означает, что он обладает всеми основными функциями Highcharts, а также некоторыми дополнительными функциями..

Кроме того, некоторые параметры по умолчанию (например, tooltip.split или legend.enabled) отличаются в этих типах диаграмм.

Демонстрационная версия: https://jsfiddle.net/BlackLabel/nsy8rdg6/

Справочник по API:

https://api.highcharts.com/class-reference/Highcharts.html#.stockChart

https://api.highcharts.com/class-reference/Highcharts.html#.chart

Документы:

https://www.highcharts.com/docs/stock/understanding-highstock

0 голосов
/ 15 июня 2019

Если вы добавите split: false к разделу всплывающей подсказки первого графика, тогда они будут отображать всплывающие подсказки одинаково

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...