在HighCharts中自定义单个系列的颜色

时间:2012-04-01 11:11:21

标签: javascript highcharts

我正在使用HighCharts作为折线图,我正在尝试更改每个系列的线条颜色。我确实找到了这个例子here,但数据是硬编码的。我的数据是从Sql数据库中提取的,并使用一些VB代码传递给HTML页面。

        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 个答案:

答案 0 :(得分:26)

顶级配置可以包含colors字段。这是一个从中挑选系列颜色的数组。

See here

这是我项目中的工件

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

答案 1 :(得分:3)

请参阅下面的代码(以及它呈现的图表)。

下面的代码段是一个完整的脚本 - 即,将它放在两个脚本标记之间的标记中,或者作为标记中包含include的标准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

答案 2 :(得分:3)

颜色可以配置为系列的一部分。尝试这样的事情:

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]
    }
];