D3.js pie.sort() Function

The pie.sort() function in D3.js is used to sort the data objects based on different properties of data. The comparator function can be used to define the basis on which the sorting would be done.
Syntax:
pie.sort( compare )
Parameters: This function accepts a single parameter as mentioned above and described below:
- compare: This takes a comparison function to sort data objects on different properties. It is an optional parameter.
Return Values: This function does not return anything.
Below example illustrates the pie.sort() function in D3.js:
Example 1:
HTML
| <!DOCTYPE html> <html> <head>   <scriptsrc=   </script> </head> <body>   <divstyle="width:300px;               height:300px;">     <center>       <h1style="color:green">         zambiatek       </h1>       <h2>         pie.sort()       </h2>       <h3>         When given data array          consists objects       </h3>     </center>     <svgwidth="300"height="250">     </svg>     <button>Click Me</button>   </div>   <script>     // Data to be added in the pie chart     var data = [       { "value": 11, "property": "dp1" },       { "value": 12, "property": "bp2" },       { "value": 32, "property": "ap3" },       { "value": 14, "property": "np4" },       { "value": 5, "property": "fp5" },       { "value": 16, "property": "gp6" }     ]      // Selecting SVG using d3.select()     var svg = d3.select("svg");      // Creating Pie generator     var pie = d3.pie()       // Using the pie.value() Function       .value((d) => { return d.value })       (data);      function updatePie() {       // Creating Pie generator       var pie = 0       var pie = d3.pie()                .value((d) => { return d.value })          // Using the pie.sort() Function         .sort(function (a, b) {           return b.property             .localeCompare(a.property);         })         (data);       // Creating arc       var arc = d3.arc()         .innerRadius(50)         .outerRadius(100);        let g = svg.append("g")         .attr("transform", "translate(150,120)");        // Grouping different arcs       var arcs = g.selectAll("arc")         .data(pie)         .enter()         .append("g");        // Appending path        arcs.append("path")         .attr("fill", (data, i) => {           return d3.schemeSet2[i];         })         .attr("d", arc);        arcs.append("text")         .attr("transform", (d) => {           return "translate(" +             arc.centroid(d) + ")";         })         .text(function (d) {           return d.value;         });     }     let btn = document.querySelector("button")     btn.addEventListener("click", updatePie);      // Creating arc     var arc = d3.arc()       .innerRadius(50)       .outerRadius(100);      let g = svg.append("g")       .attr("transform", "translate(150,120)");      // Grouping different arcs     var arcs = g.selectAll("arc")       .data(pie)       .enter()       .append("g");      // Appending path      arcs.append("path")       .attr("fill", (data, i) => {         return d3.schemeSet2[i];       })       .attr("d", arc);      arcs.append("text")       .attr("transform", (d) => {         return "translate(" +           arc.centroid(d) + ")";       })       .text(function (d) {         return d.value;       });   </script> </body> </html> | 
Output:
- Before clicking the button:
- After clicking the button:
Example 2:
HTML
| <!DOCTYPE html> <html> <head>   <scriptsrc=   </script> </head> <body>   <divstyle="width:300px;               height:300px;">     <center>       <h1style="color:green">         zambiatek       </h1>       <h2>         pie.sort()       </h2>       <h3>Sorting values: </h3>     </center>     <svgwidth="300"height="250">     </svg>     <button>Click Me</button>   </div>   <script>     // Data to be added in the pie chart     var data = [       { "value": 11, "property": "dp1" },       { "value": 12, "property": "bp2" },       { "value": 32, "property": "ap3" },       { "value": 14, "property": "np4" },       { "value": 5, "property": "fp5" },       { "value": 16, "property": "gp6" }     ]      // Selecting SVG using d3.select()     var svg = d3.select("svg");      // Creating Pie generator     var pie = d3.pie()       // Use of pie.value() Function       .value((d) => { return d.value })       (data);      function upadtePie() {       // Creating Pie generator       var pie = 0       var pie = d3.pie()         .value((d) => { return d.value })          // Using the pie.sort() Function         .sort(function (a, b) {           return b.value > a.value;         })         (data);       // Creating arc       var arc = d3.arc()         .innerRadius(50)         .outerRadius(100);        let g = svg.append("g")         .attr("transform", "translate(150,120)");        // Grouping different arcs       var arcs = g.selectAll("arc")         .data(pie)         .enter()         .append("g");        // Appending path        arcs.append("path")         .attr("fill", (data, i) => {           return d3.schemeSet2[i];         })         .attr("d", arc);        arcs.append("text")         .attr("transform", (d) => {           return "translate(" +             arc.centroid(d) + ")";         })         .text(function (d) {           return d.value;         });     }     let btn = document.querySelector("button")     btn.addEventListener("click", upadtePie);     // Creating arc     var arc = d3.arc()       .innerRadius(50)       .outerRadius(100);      let g = svg.append("g")       .attr("transform", "translate(150,120)");      // Grouping different arcs     var arcs = g.selectAll("arc")       .data(pie)       .enter()       .append("g");      // Appending path      arcs.append("path")       .attr("fill", (data, i) => {         return d3.schemeSet2[i];       })       .attr("d", arc);      arcs.append("text")       .attr("transform", (d) => {         return "translate(" +           arc.centroid(d) + ")";       })       .text(function (d) {         return d.value;       });   </script> </body> </html> | 
Output:
- Before clicking the button:
- After clicking the button:
 
				 
					



