create pie chart using d3js


Here is an example of creating a pie chart using D3.js:

// Define the dimensions of the chart
var margin = { top: 20, right: 20, bottom: 30, left: 40 },
    width = 600 - margin.left - margin.right,
    height = 300 - - margin.bottom;

// Create the SVG object and set its dimensions
var svg ="body")
    .attr("width", width + margin.left + margin.right)
    .attr("height", height + + margin.bottom)
    .attr("transform", "translate(" + margin.left + "," + + ")");

// Define the data for the chart
var data = [
  {name: "Apples", value: 10},
  {name: "Bananas", value: 20},
  {name: "Oranges", value: 15},
  {name: "Grapes", value: 5},
  {name: "Pineapples", value: 25}

// Set up the color scale
var color = d3.scaleOrdinal()
  .range(["#98abc5", "#8a89a6", "#7b6888", "#6b486b", "#a05d56"]);

// Define the arc for the pie slices
var arc = d3.arc()
  .outerRadius(Math.min(width, height) / 2 - 10)

// Define the pie layout
var pie = d3.pie()
  .value(function(d) { return d.value; });

// Create the pie chart
var g = svg.selectAll(".arc")
    .attr("class", "arc");

  .attr("d", arc)
  .style("fill", function(d) { return color(; });

  .attr("transform", function(d) { return "translate(" + arc.centroid(d) + ")"; })
  .attr("dy", ".35em")
  .text(function(d) { return; });

In this example, we define the dimensions of the chart and create an SVG object to contain it. We then define an array of data for the chart, with each object representing a single slice of the pie.

Next, we set up the color scale, arc, and pie layout. The color scale is set up using the d3.scaleOrdinal() function and assigns colors to each slice of the pie. The arc is defined using the d3.arc() function and sets the outer and inner radius of each slice. The pie layout is defined using the d3.pie() function and sorts the slices based on the order of the data array.

To create the pie chart, we first select all .arc elements in the SVG object and bind the pie data to them using the .data(pie(data)) method. We then create a g element for each slice of the pie using .enter().append("g") and set the class to arc.

For each slice, we create a path element using the arc function and set the fill color based on the color scale. We then add a text element to each slice and position it using the arc.centroid() function.