Pie chart with custom entrance animation
(function (H) { H.seriesTypes.pie.prototype.animate = function (init) { const series = this, chart = series.chart, points = series.points, { animation } = series.options, { startAngleRad } = series; function fanAnimate(point, startAngleRad) { const graphic = point.graphic, args = point.shapeArgs; if (graphic && args) { graphic // Set inital animation values .attr({ start: startAngleRad, end: startAngleRad, opacity: 1 }) // Animate to the final position .animate({ start: args.start, end: args.end }, { duration: animation.duration / points.length }, function () { // On complete, start animating the next point if (points[point.index + 1]) { fanAnimate(points[point.index + 1], args.end); } // On the last point, fade in the data labels, then // apply the inner size if (point.index === series.points.length - 1) { series.dataLabelsGroup.animate({ opacity: 1 }, void 0, function () { points.forEach(point => { point.opacity = 1; }); series.update({ enableMouseTracking: true }, false); chart.update({ plotOptions: { pie: { innerSize: '40%', borderRadius: 8 } } }); }); } }); } } if (init) { // Hide points on init points.forEach(point => { point.opacity = 0; }); } else { fanAnimate(points[0], startAngleRad); } }; }(Highcharts)); Highcharts.chart('container', { chart: { type: 'pie' }, title: { text: 'Departmental Strength of a Company' }, subtitle: { text: 'Custom animation of pie series' }, tooltip: { headerFormat: '', pointFormat: '<span style="color:{point.color}">\u25cf</span> ' + '{point.name}: <b>{point.percentage:.1f}%</b>' }, accessibility: { point: { valueSuffix: '%' } }, plotOptions: { pie: { allowPointSelect: true, borderWidth: 2, cursor: 'pointer', dataLabels: { enabled: true, format: '<b>{point.name}</b><br>{point.percentage}%', distance: 20 } } }, series: [{ // Disable mouse tracking on load, enable after custom animation enableMouseTracking: false, animation: { duration: 2000 }, colorByPoint: true, data: [{ name: 'Customer Support', y: 21.3 }, { name: 'Development', y: 18.7 }, { name: 'Sales', y: 20.2 }, { name: 'Marketing', y: 14.2 }, { name: 'Other', y: 25.6 }] }] });
CorePie charts
Install with NPM
The official Highcharts NPM package comes with support for CommonJS and contains Highcharts, and its Stock, Maps and Gantt packages.
npm install highcharts --save
See more installation optionsDownload our library
The zip archive contains Javascript files and examples. Unzip the zip package and open index.html in your browser to see the examples.
DownloadBuy a license
You can download and try out all Highcharts products for free. Once your project/product is ready for launch, purchase a commercial license.
See License Pricing