Highcharts диаграмма санки, серия цветная - PullRequest
0 голосов
/ 11 декабря 2018

Как сделать цвет серии идентичным цвету данных?

В этом примере данные "дисбаланс" окрашены в красный цвет, а серия - в синий.

Highcharts.chart('container', {

    title: {
        text: 'Highcharts Sankey Diagram'
    },

    series: [{
            colors: ["#90CAF9", "#F44336", "#1565C0"],
        keys: ['from', 'to', 'weight'],
        data: [
            {name: "prop-1", color: "#90CAF9", from: "prop-1", to: "transition", weight: 0},
            {name: "prop-2", color: "#90CAF9", from: "prop-2", to: "transition", weight: 4.14},             
            {name: "imbalance", color: "#F44336", from: "imbalance", to: "transition", weight: 0.6},
            {name: "prop-3", color: "#1565C0", from: "transition", to: "prop-3", weight: 4.74},
            {name: "prop-4", color: "#1565C0", from: "transition", to: "prop-4", weight: 0},
        ],
        type: 'sankey',
        name: 'Sankey demo series'
    }]

});

Пример: https://jsfiddle.net/s3xnm5v8/

enter image description here

Обновление Понятно.Необходимо использовать узлы.https://jsfiddle.net/p4f21w7e/

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Главное, что нужно понять, это то, что существует два способа раскрасить диаграмму:

  • Цвета серии (серия []. Colors) будут окрашивать узлы.
  • данные серии (серия []. данные []. цвет) окрашивают ваши потоки.

Посмотрите на этот пример:

 series: [{
    colors: ["#880000",  "#AFAFAF",  "#008800", "#000088", "#ffb238", "#ffee37"],
    data: [

        {color: "#BB0000", from: "Red", to: "Colour Demo", weight: 10},
        {color: "#00BB00", from: "Green", to: "Colour Demo", weight: 4},                       {color: "#0000BB",  from: "Blue", to: "Colour Demo", weight: 6},
        {color: "#ffb238", from: "Colour Demo", to: "Orange", weight: 10},
        {color: "#ffee37",  from: "Colour Demo", to: "Yellow", weight: 10}
    ]
}]

https://jsfiddle.net/jjjjssssfidd/c2dbjshx/2/

Узлы окрашены с использованием серийных цветов в том порядке, в котором они отображаются (слева направо, смещаясь вниз).Итак, в этом примере:

  • Сначала «Red» (с использованием series []. Colors [0])
  • Затем «Color Demo» (с использованием series []. Colors [1])
  • Назад к зеленому (серия []. Цвета [2])
  • вплоть до "синего" (с использованием серии []. Цвета [3])
  • Затем к Оранжевому (серия []. Colors [4])
  • Наконец, Желтый (series []. Colors [5])

Сам поток раскрашивается в соответствии сцвет для этой точки данных, так что это прямая связь.

0 голосов
/ 11 декабря 2018

Вы можете использовать свойство 'colors' типа серии sankey.

https://api.highcharts.com/highcharts/series.sankey.colors

series: [{
    keys: ['from', 'to', 'weight'],
    data: [
        {from:'Brazil', to:'Portugal', weight:5},
        ['Canada', 'Portugal', 1 ],
        ['Canada', 'France', 5 ],
        ['Canada', 'England', 1 ],
        ['Mexico', 'Portugal', 1 ],
        ['Mexico', 'France', 1 ],
        ['Mexico', 'Spain', 5 ],
        ['Mexico', 'England', 1 ],
        ['USA', 'Portugal', 1 ],
        ['USA', 'France', 1 ],
        ['USA', 'Spain', 1 ],
        ['USA', 'England', 5 ]
    ],
    type: 'sankey',
    name: 'Sankey demo series',
    colors: ['#00796B', '#ff0000', '#00ff00','#0000ff']
}]

enter image description here

...