Highcharts - Детализация столбчатой ​​диаграммы, как изменить цвет полосы детализации на основе некоторого значения

Я пытаюсь развернуть гистограмму в highcharts, используя ниже js

// Create the chart
Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    title: {
        text: 'Browser market shares. January, 2015 to May, 2015'
    },
    subtitle: {
        text: 'Click the columns to view versions. Source: <a href="http://netmarketshare.com">netmarketshare.com</a>.'
    },
    xAxis: {
        type: 'category'
    },
    yAxis: {
        title: {
            text: 'Total percent market share'
        }

    },
    legend: {
        enabled: false
    },
    plotOptions: {
        series: {
            borderWidth: 0,
            dataLabels: {
                enabled: true,
                format: '{point.y:.1f}%'
            }
        }
    },

    tooltip: {
        headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
        pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>'
    },

    series: [{
        name: 'Brands',
        colorByPoint: true,
        data: [{
            name: 'Microsoft Internet Explorer',
            y: 56.33,
            drilldown: 'Microsoft Internet Explorer'
        }, {
            name: 'Firefox',
            y: 10.38,
            drilldown: 'Firefox'
        }]
    }],
    drilldown: {
        series: [{
            name: 'Microsoft Internet Explorer',
            id: 'Microsoft Internet Explorer',
            data: [
                [
                    'v11.0',
                    24.13
                ],
                [
                    'v8.0',
                    17.2
                ],
                [
                    'v6.0',
                    1.06
                ],
                [
                    'v7.0',
                    0.5
                ]
            ]
        }, {
            name: 'Firefox',
            id: 'Firefox',
            data: [
                [
                    'v35',
                    2.76
                ],
                [
                    'v34',
                    1.27
                ],
                [
                    'v38',
                    1.02
                ],
                [
                    'v33',
                    0.22
                ],
                [
                    'v32',
                    0.15
                ]
            ]
        }]
    }
});

Можно ли изменить только цвета столбца детализации на основе какого-либо другого значения, а не значения оси x или оси y.

Ниже приведены данные, основанные на «new_info». Я хочу изменить цвет в соответствии с

  [{"name":Microsoft Internet Explorer, data :[['v11.0',14, (new_info) 6] , ['v8.0',10, 8(new_info)] , ['v6.0',8, 3 (new_info)]]

Если значение находится в пределах 10–8 красных, 7–5 янтарных, 4–3 желтых.

Когда я нажимаю на детализацию, она должна показать мне несколько столбцов с n столбцами, несколько столбцов красным цветом, несколько желтым цветом, несколько оранжевым цветом и так далее.


person Rachel    schedule 07.02.2018    source источник


Ответы (1)


Вы можете использовать зоны следующим образом:

...
zones: [{
            value: 4,
            color: '#ffcc00'
        }, {
            value: 7.1,
            color: '#AA7F39'
        }, {
                value:13,
            color: '#ff0000'
        }]
...

Вот скрипт

person Core972    schedule 07.02.2018
comment
можно ли добавить новое поле и его значение не то, что в массиве данных. Я не хочу трогать массив данных, но есть другое значение, связанное с элементами массива данных, в зависимости от того, что я хочу изменить значение и цвет - person Rachel; 07.02.2018
comment
Я не совсем понимаю, чего вы пытаетесь добиться. Пожалуйста, объясните это на каком-нибудь примере. - person Kamil Kulig; 17.02.2018
comment
@KamilKulig приведенное выше решение, значения, используемые в зонах, представляют собой значение оси y для детализации, но что, если я хочу различать его на основе совершенно другого значения, отличного от оси x или y. - person Rachel; 20.02.2018
comment
Тогда вам нужно сделать это вручную. Повторите все данные и примените соответствующий цвет к каждой точке. - person Kamil Kulig; 20.02.2018
comment
@KamilKulig, мне нужно полностью изменить JS? - person Rachel; 20.02.2018
comment
Взгляните на эту демонстрацию: jsfiddle.net/BlackLabel/vm4fx3kf я создал отдельное свойство с именем param и я использую его, чтобы определить, какой цвет следует применять для каждой точки. - person Kamil Kulig; 21.02.2018