Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to make gradient in highcharts?

I need to make different gradient color for different lines

For example, now I have two lines, but both of them has the same gradient color (blue):

Highcharts.chart('container', {
    chart: {
        type: 'areaspline'
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    plotOptions: {
        series: {
            fillColor: {
                linearGradient: [0, 0, 0, 300],
                stops: [
                    [0, Highcharts.getOptions().colors[0]],
                    [1, Highcharts.color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
                ]
            }
        }
    },

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    },
    {
        data: [10, 20, 79.4, 50.2, 40.0, 50.0, 110.6, 90.5, 113.4, 144.1, 75.6, 24.4]
    }]
});

https://jsfiddle.net/5g3khvme/4/

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

I’d like to use default colors of highcharts for lines, but for blue it should be blue gradient, for black line it should be black gradient and etc.

>Solution :

You can use the callback function of your chart to iterate the series and update the fillColor based on the serie.color

Highcharts.chart('container', {
  chart: {
    type: 'areaspline'
  },
  xAxis: {
    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  },
  series: [{
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    },
    {
      data: [10, 20, 79.4, 50.2, 40.0, 50.0, 110.6, 90.5, 113.4, 144.1, 75.6, 24.4]
    }
  ]
}, (chart) => {
  chart.series.forEach((serie) => {
    serie.update({
      fillColor: {
        linearGradient: [0, 0, 0, 300],
        stops: [
          [0, serie.color],
          [1, Highcharts.color(serie.color).setOpacity(0).get('rgba')]
        ]
      }
    })
  })
});
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/accessibility.js"></script>

<div id="container"></div>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading