Skip to main content

Pie Chart

Start by importing the Chart component :

import { Chart } from "react-google-charts";
Live Editor
function App() {
  const data = [
    ["Task", "Hours per Day"],
    ["Work", 9],
    ["Eat", 2],
    ["Commute", 2],
    ["Watch TV", 2],
    ["Sleep", 7],
  ];

  const options = {
    title: "My Daily Activities",
  };
  return (
    <Chart
      chartType="PieChart"
      data={data}
      options={options}
      width={"100%"}
      height={"400px"}
    />
  );
}
Result
Loading...

Edit chart example in CodeSandbox


High-Level Overview

To render a Pie Chart, you need to provide the following props to the Chart component:

  • chartType: Set this to "PieChart" to specify the chart type.
  • data: Provide the chart data in a tabular format. First row containing the column definitions and subsequent rows the data.
  • options: (Optional) Customize the chart with various options like title, colors, and display settings.
  • width and height: (Optional) Define the size of the chart.

Basic Usage

import React from "react";
import { Chart } from "react-google-charts";

const data = [
["Task", "Hours per Day"],
["Work", 11],
["Eat", 2],
["Commute", 2],
["Watch TV", 2],
["Sleep", 7],
];

// Optional
const options = {
title: "My Daily Activities",
};

function App() {
return <Chart chartType="PieChart" data={data} options={options} />;
}

export default App;

Examples

Below are interactive examples of Pie Charts rendered using react-google-charts. Each example demonstrates different features and customization options. You can interact with the charts directly in your browser.

3D Pie Chart

This example demonstrates how to create a 3D Pie Chart.

Live Editor
function App() {
  const data = [
    ["Task", "Hours per Day"],
    ["Work", 11],
    ["Eat", 2],
    ["Commute", 2],
    ["Watch TV", 2],
    ["Sleep", 7],
  ];

  const options = {
    title: "My Daily Activities",
    pieHole: 0.4, // Creates a Donut Chart. Does not do anything when is3D is enabled
    is3D: true, // Enables 3D view
    // slices: {
    //   1: { offset: 0.2 }, // Explodes the second slice
    // },
    pieStartAngle: 100, // Rotates the chart
    sliceVisibilityThreshold: 0.02, // Hides slices smaller than 2%
    legend: {
      position: "bottom",
      alignment: "center",
      textStyle: {
        color: "#233238",
        fontSize: 14,
      },
    },
    colors: ["#8AD1C2", "#9F8AD1", "#D18A99", "#BCD18A", "#D1C28A"],
  };
  return (
    <Chart
      chartType="PieChart"
      data={data}
      options={options}
      width={"100%"}
      height={"400px"}
    />
  );
}
Result
Loading...

Diff Pie Chart

This example shows how to create a Diff Pie Chart to compare two sets of data.

Donut Chart

You can create a Donut Chart by adding a hole to the center of the pie using the .

Exploding a Slice

Learn how to "explode" or offset a slice from the pie chart for emphasis.

Removing Slices

This example demonstrates how to remove slices below a certain threshold from the pie chart.

Rotating a Pie Chart

Learn how to rotate the pie chart to start from a different angle.

Slice Visibility Threshold

This example shows how to set a visibility threshold to group smaller slices into an "Other" category.


Customizing the Pie Chart

You can customize various aspects of the Pie Chart using the options prop.

Styling Options

Customize the chart's appearance:

const options = {
title: "My Daily Activities",
is3D: true, // Enables 3D view
pieHole: 0.4, // Will be ignored if is3D is set to true
slices: {
1: { offset: 0.2 }, // Explodes the second slice
},
pieStartAngle: 10, // Rotates the chart
sliceVisibilityThreshold: 0.02, // Hides slices smaller than 2%
legend: {
position: "bottom",
alignment: "center",
},
colors: ["#AFCBFF", "#C2E0C6", "#D8A7B1", "#FFC107", "#D3D3D3"],
};

Exploding a Slice

To emphasize a particular slice, you can "explode" it by setting an offset:

const options = {
slices: {
2: { offset: 0.2 }, // Explodes the third slice
},
};

Rotating the Pie Chart

Adjust the starting angle of the pie chart:

const options = {
pieStartAngle: 135, // Rotates the chart by 135 degrees
};

Slice Visibility Threshold

Group smaller slices into an "Other" category:

const options = {
sliceVisibilityThreshold: 0.05, // Slices smaller than 5% will be grouped
};

Additional Resources