Как пропустить один уровень данных в диаграмме Санки? - PullRequest
0 голосов
/ 29 июня 2018

Рассмотрим следующий график (приведенный ниже код почему-то не работает во фрагменте SO, см. эквивалентный Codepen.io )

Highcharts.chart('container', {
  series: [{
    keys: ['from', 'to', 'weight'],
    data: [
      ['start', 'hello', 70],
      ['start', 'world', 20],
      ['start', 'yuhu', 10],
      ['hello', 'aaa', 49],
      ['hello', 'bbb', 21],
      ['bbb', 'OK', 21],
      ['world', 'OK', 30],
      // up to now everything is OK
      // yuhu and aaa should be at the same level as OK
      ['yuhu', 'KO', 10],
      ['aaa', 'KO', 49]
    ],
    type: 'sankey',
  }]

});
<script src="https://code.highcharts.com/modules/sankey.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container"></div>

Если вы закомментируете последние два элемента data, график будет в порядке. Я бы хотел, чтобы yuhu и aaa слились в том же вертикальном «слое», что и OK.

В ходе испытаний я обнаружил, что следующий «слой» устанавливается сразу после текущего при объединении.

В моем случае yuhu и aaa находятся на разных «слоях», и они не могут сливаться чисто. Одно из решений было бы для yuhu расширить или пропустить один «слой» (и быть на том же уровне, что и aaa, один «слой» перед ожидаемым посадочным «слоем»).

Можно ли этого достичь?

1 Ответ

0 голосов
/ 29 июня 2018

Как правило, вы можете контролировать столбец, на котором отображается узел: https://codepen.io/anon/pen/OErjZg, используя nodes опции:

Highcharts.chart('container', {
  series: [{
    keys: ['from', 'to', 'weight'],
    nodes: [{
      id: 'KO',
      column: 3
    }],
    data: [
        ['start', 'hello', 70],
        ['start', 'world', 20],
        ['start', 'yuhu', 10],
        ['hello', 'aaa', 49],
        ['hello', 'bbb', 21],
        ['bbb', 'OK', 21],
        ['world', 'OK', 30],
        // up to now everything is OK
        // yuhu and aaa should be at the same level as OK
        ['yuhu', 'KO', 10],
        ['aaa', 'KO', 49]
    ],
    type: 'sankey', 
  }]

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