Javascript 为highcharts中的每列设置不同的颜色

Javascript 为highcharts中的每列设置不同的颜色,javascript,highcharts,Javascript,Highcharts,我需要为Highcharts图形中的每个列动态设置不同的颜色。我的图表是: 选项={ 图表:{ renderTo:'图表', 键入:“列”, 宽度:450 }, 标题:{ 文字:“比赛状态概览” }, xAxis:{ 类别:[“已批准照片”、“待批准照片”, “投票”、“参赛者”], 标签:{ //轮调:-45, 风格:{ 字体:“普通9px Verdana,无衬线,arial” } } }, 亚克斯:{ allowDecimals:false, 分:0,, 标题:{ 文本:“金额” } },

我需要为Highcharts图形中的每个列动态设置不同的颜色。我的图表是:

选项={
图表:{
renderTo:'图表',
键入:“列”,
宽度:450
},
标题:{
文字:“比赛状态概览”
},
xAxis:{
类别:[“已批准照片”、“待批准照片”,
“投票”、“参赛者”],
标签:{
//轮调:-45,
风格:{
字体:“普通9px Verdana,无衬线,arial”
}
}
},
亚克斯:{
allowDecimals:false,
分:0,,
标题:{
文本:“金额”
}
},
图例:{
已启用:false
},
系列:[]
};
系列={
名称:“金额”,
数据:[],
数据标签:{
启用:对,
颜色:'#000000',
对齐:“右”,
x:-10,
y:20,
格式化程序:函数(){
把这个还给我;
},
风格:{
字体:“普通13px Verdana,无衬线”
}
}
};
数据的设置方式如下:

for (var i in Data) {
  if (parseInt(Data[i]) != 0) {
    series.data.push(parseInt(Data[i]));
  } else {
    series.data.push(null);
  }
}
options.series.push(series);
chart = new Highcharts.Chart(options);

如何在此循环中为每个数据点动态设置不同的颜色?

向序列添加值时。数据还可以使用点选项设置颜色,例如

series.data.push({ y: parseInt(Data[i]), color: '#FF0000' });

有关点选项的更多详细信息,请参见

这里是另一个使用最新版本Highcharts(目前为3.0)的解决方案

将该选项设置为true并定义所需的

options = {
    chart: {...},
    plotOptions: {
        column: {
            colorByPoint: true
        }
    },
    colors: [
        '#ff0000',
        '#00ff00',
        '#0000ff'
    ]
}

下面是一个基于高位图表的示例

尝试以下方法之一:

方法1:

Highcharts.setOptions({ colors: ['#3B97B2', '#67BC42', '#FF56DE', '#E6D605', '#BC36FE'] });
方法2:

var colors = ['#3B97B2', '#67BC42', '#FF56DE', '#E6D605', '#BC36FE', '#000'];

 $('#bar_chart').highcharts({
        chart: {
            type: 'column'              
        },
        title: {
            text: ''
        },
        subtitle: {
            text: ''
        },
        xAxis: {
            type: 'category'
        },
        yAxis: {
            title: {
                text: ''
            }
        },
        legend: {
            enabled: false
        },
        plotOptions: {
            series: {
                borderWidth: 0,
                dataLabels: {
                    enabled: false                       
                }
            }
        },         

        series: [{
            name: '',
            colorByPoint: true,
            data: [{
                name: 'Blue',
                y: 5.78,
                color: colors[0]

            }, {
                name: 'Green',
                y: 5.19,
                color: colors[1]

            }, {
                name: 'Pink',
                y: 32.11,
                color: colors[2]

            }, {
                name: 'Yellow',
                y: 10.04,
                color: colors[3]

            }, {
                name: 'Purple',
                y: 19.33,
                color: colors[4]

            }]
        }]
    });

我有来自API响应和2系列的颜色。第二个系列的动态色彩

下面是在序列映射时设置动态颜色的示例

const响应=[{
“id”:1,
'名称':'芒果',
“颜色”:“83d8b6”,
“股票”:12.0,
"需求":28,,
},
{
id':2,
'名称':'香蕉',
“颜色”:“d7e900”,
“股票”:12.0,
"需求":28,,
}
];
让图表数据:{
类别:[],
系列:[]
};
chartData.categories=response.map(x=>x.name);
chartData.series.push({
名称:“系列1”,
键入:“列”,
数据:response.map(x=>x.demand)
});
chartData.series.push({
名称:'系列2',
键入:“列”,
数据:response.map(x=>({
y:x.stock,
颜色:x.color//在此处动态设置颜色
}))
});

log('chartData:',chartData)嗨!又是我。。。如何通过数据设置列宽。例如:如果数据是23,我想设置列宽100px,如果数据是123,它将是110px。我需要这个选项在柱中间的PATT数据。对不起,我不确定在HycCARTT中你是如何做到这一点的。你可以用PoptoTeS>系列->线宽来设置宽度。但是,这将固定图表中所有条形的宽度。可能您可以使用最大值设置它。该文档链接已断开感谢您的回答!请注意,此解决方案适用于条形图和柱形图。只需在plotOptions阵列中将“column”更改为“bar”,这正是我所需要的,而且比公认的答案更容易实现。谢谢有没有办法在多个系列中执行类似的操作?不是全球性的?我有一个折线图和列,但我希望我的线条颜色与我为列系列设置的颜色不同。在柱状图中,某些列也需要不同的颜色。有没有办法将颜色设置为不同颜色的数组?例如,我从数据中返回所需的颜色,因此我希望使用该颜色,而不是手动设置,并且某些列具有特定的颜色。