Я рассматриваю вопрос об использовании диаграммы Санки, но не могу четко понять, как рассчитать веса.
Давайте предположим случай, когда сущность (one
) делится на hello
и world
, соответственно на 70% и 30%.
hello
затем делится на aaa
и bbb
, а также 70/30.
Из документации я подумал, что веса были относительно выходного узла (код также в JSFiddle и CodePen - по какой-то причине тот же код отказывается работать в SO фрагмент ниже):
Highcharts.chart('container', {
series: [{
keys: ['from', 'to', 'weight'],
data: [
['One', 'hello', 70],
['One', 'world', 30],
['hello', 'aaa', 70],
['hello', 'bbb', 30],
],
type: 'sankey',
}]
});
#container {
min-width: 300px;
max-width: 800px;
height: 400px;
margin: 1em auto;
border: 1px solid silver;
}
<script src="https://code.highcharts.com/modules/sankey.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container"></div>
Однако это не так: оба world
и bbb
имеют одинаковый размер, а именно 30
.
Это означает, что веса являются абсолютными: в моем случае мне нужно взять 100
и распределить его соответственно между world
(30), aaa
(70 * 0.7 = 49) и bbb
(70 * 0,3 = 21).
Если это так, куда я должен поместить world
, поскольку он рассчитывается автоматически из других данных? (это «промежуточный» результат)