Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add label in chart.js for pie chart

I am displaying Pie chart. But how to Display labels in pie charts.

Below is the chart.js code for pie chart.

this.Pie = function(data, options) {    chart.Pie.defaults = {     segmentShowStroke: true,     segmentStrokeColor: "#fff",     segmentStrokeWidth: 2,     animation: true,     animationSteps: 100,     animationEasing: "easeOutBounce",     animateRotate: true,     animateScale: false,     onAnimationComplete: null   };    var config = (options) ? mergeChartConfig(chart.Pie.defaults, options) : chart.Pie.defaults;    return new Pie(data, config, context); }; 

and below is the code of html file for displaying pie chart

code:

var data = [{   value: 20,   color: "#637b85" }, {   value: 30,   color: "#2c9c69" }, {   value: 40,   color: "#dbba34" }, {   value: 10,   color: "#c62f29" }];  var canvas = document.getElementById("hours"); var ctx = canvas.getContext("2d"); new Chart(ctx).Pie(data); 
like image 768
user3440583 Avatar asked Mar 20 '14 05:03

user3440583


People also ask

How do you add labels to a pie chart?

Add data labelsClick the chart, and then click the Chart Design tab. Click Add Chart Element and select Data Labels, and then select a location for the data label option. Note: The options will differ depending on your chart type.

How do I edit pie chart data labels?

To format data labels, select your chart, and then in the Chart Design tab, click Add Chart Element > Data Labels > More Data Label Options. Click Label Options and under Label Contains, pick the options you want. To make data labels easier to read, you can move them inside the data points or even outside of the chart.


1 Answers

It is not necessary to use another library like newChart or use other people's pull requests to pull this off. All you have to do is define an options object and add the label wherever and however you want it in the tooltip.

var optionsPie = {     tooltipTemplate: "<%= label %> - <%= value %>" } 

If you want the tooltip to be always shown you can make some other edits to the options:

 var optionsPie = {         tooltipEvents: [],         showTooltips: true,         onAnimationComplete: function() {             this.showTooltip(this.segments, true);         },         tooltipTemplate: "<%= label %> - <%= value %>"     } 

In your data items, you have to add the desired label property and value and that's all.

data = [     {         value: 480000,         color:"#F7464A",         highlight: "#FF5A5E",         label: "Tobacco"     } ]; 

Now, all you have to do is pass the options object after the data to the new Pie like this: new Chart(ctx).Pie(data,optionsPie) and you are done.

This probably works best for pies which are not very small in size.

Pie chart with labels

like image 182
Ivan Dimov Avatar answered Oct 06 '22 10:10

Ivan Dimov