set different colors for each column in highcharts

后端 未结 4 1506
无人共我
无人共我 2020-11-29 05:53

I need to set different colors for each column in Highcharts graph dynamically. My Highcharts graph is:

options = {
           


        
相关标签:
4条回答
  • 2020-11-29 06:05

    Here is another solution with the latest version of Highcharts (currently 3.0).

    Set the colorByPoint option to true and define the color sequence that you want.

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

    Here is an example based upon Highcharts Column with rotated labels demo

    0 讨论(0)
  • 2020-11-29 06:07

    Try either of these approaches:

    Approach 1:

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

    Approach 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]
    
                }]
            }]
        });
    
    0 讨论(0)
  • 2020-11-29 06:18

    When you add the value to the series.data you can also set the color using the point options e.g

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

    For more details about the point options see https://api.highcharts.com/class-reference/Highcharts.Point#color

    0 讨论(0)
  • 2020-11-29 06:31

    i had colors from API response and 2 series. second series with dynamic colors.

    following is sample to set dynamic colors while series mapping.

    const response = [{
        'id': 1,
        'name': 'Mango',
        'color': '#83d8b6',
        'stock': 12.0,
        'demand': 28,
      },
      {
        id ': 2,
        'name': 'Banana',
        'color': '#d7e900',
        'stock': 12.0,
        'demand': 28,
      }
    ];
    let chartData: {
      categories: [],
      series: []
    };
    chartData.categories = response.map(x => x.name);
    chartData.series.push({
      name: 'Series 1',
      type: 'column',
      data: response.map(x => x.demand)
    });
    chartData.series.push({
      name: 'Series 2',
      type: 'column',
      data: response.map(x => ({
        y: x.stock,
        color: x.color // set color here dynamically
      }))
    });
    console.log('chartData: ', chartData);

    you could also read more about Highcharts series Point and Marker

    0 讨论(0)
提交回复
热议问题