Настройка цветов отдельных серий в HighCharts - PullRequest
10 голосов
/ 01 апреля 2012

Я использую HighCharts для линейного графика, и я пытаюсь изменить цвет линии для каждой серии.Я нашел этот пример здесь , но данные жестко закодированы.Мои данные извлекаются из базы данных Sql и передаются на HTML-страницу с использованием некоторого кода VB.

        var chart; 
        $(document).ready(function () {
            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container',
                    defaultSeriesType: 'column'
                },
                title: {
                    text: 'Chart Title'
                },
                subtitle: {
                    text: 'Chart subtitle'
                },
                xAxis: {
                    categories: [<%= GraphDate %>]
                    ,
                    labels:
                    {
                        rotation: -45,
                        align: 'right',
                        style:
                        {

                        }
                    }
                },
                yAxis: {
                    min: 160,
                    title: {
                        text: 'Temp'
                    }
                },
                legend: {
                    layout: 'vertical',
                    backgroundColor: '#FFFFFF',
                    align: 'left',
                    verticalAlign: 'top',
                    x: 400,
                    y: 0,
                    floating: true,
                    shadow: true
                },
                tooltip: {
                    formatter: function () {
                        return '' +
                            this.x + ': ' + this.y + ' ºC';
                    }
                },
                plotOptions: {
                    column: {
                        pointPadding: 0.2,
                        borderWidth: 0
                    }
                },
                series: 

                [<%= GraphSeries %>],
            });

Я попытался оформить его, используя другой пост, однако не удалось создать диаграмму.Однако основная проблема состоит в том, что линейный график имеет две серии, поэтому следующий метод установит цвет для обеих серий, я полагаю?Итак, может мне нужно как-нибудь отформатировать серию в моем коде VB?

series: [{ 
    color: 'yellow',
    data: [
        [<%= GraphSeries %>]
    ]},

Редактировать:

$(document).ready(function () {
            chart = new Highcharts.Chart({
            colors: ['#4572A7', '#AA4643', '#89A54E', '#80699B', '#3D96AE', '#DB843D', '#92A8CD', '#A47D7C', '#B5CA92']

                chart: {
                    renderTo: 'container',
                    defaultSeriesType: 'column'
                }

Ответы [ 3 ]

26 голосов
/ 01 апреля 2012

Конфигурация верхнего уровня может содержать поле colors. Это массив, из которого будут выбраны цвета серии.

Смотрите здесь .

Вот рабочая часть из моего проекта

var chart;
$(document).ready(function () {
    chart = new Highcharts.Chart({
        chart:{
            renderTo:'perfchart',
            type:'line',
            marginRight:130,
            marginBottom:25
        },
        colors: ['#0000FF', '#0066FF', '#00CCFF'],
        title:{
            text:'Historical system performance',
            x:-20 //center
        },

Внешний вид:

highcharts colors

3 голосов
/ 25 февраля 2015

Цвет можно настроить как часть серии. Попробуйте что-то вроде этого:

series: [
    {
        name: 'series I',
        color: '#ffffff',
        data: [17.4, 16.1, 19.45, 24.15, 28.44, 33.15, 37.2, 41.25, 43.3]
    }
];
3 голосов
/ 01 апреля 2012

См. Код (и график, который он отображает) ниже.

Ниже приведен фрагмент скрипта complete , т. Е. Либо поместите его в разметку между двумя тегами скрипта, либо в виде отдельного файла js с включением в разметку.

Colors является объектом Chart, поэтому проще всего передать массив цветов (в виде шестнадцатеричных строк):

 $(function () {
    var chart;
    $(document).ready(function() {
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                type: 'line'
            },
            colors: ['#562F1E', '#AF7F24', '#263249', '#5F7F90', '#D9CDB6'],
            title: {
               text: false
            },
            yAxis: {
                title: {
                    text: false
                }
           },
           series: [{
                name: 'series I',
                data: [17.4, 16.1, 19.45, 24.15, 28.44, 33.15, 37.2, 41.25, 43.3]
           },
           {
                name: 'series II',
                data: [13.19, 17.23, 25.74, 28.5, 33.9, 35.62, 37.0, 36.6, 34.82]
           }
           ]
        });
    });
})

enter image description here

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