Pie Chart

Show proportions and percentages with circular charts.

Basic Pie Chart

Device Mix
Distribution of traffic sources

Donut Chart

Add an inner radius to create a donut shape, perfect for displaying a total value.

Traffic Distribution
With center label showing total

Semi-Circle Chart

Use start and end angles for gauge-style displays.

Desktop Percentage
Proportion of desktop in device mix

Detailed Breakdown

Show more granular data with additional segments.

Detailed Traffic Sources
Breakdown by source type

Comparison

Use multiple pie charts to compare different time periods or categories.

Summer
High desktop production
Winter
Lower desktop production

Usage

import { Pie, PieChart, Cell, Label } from "recharts"
import { ChartContainer, ChartTooltip, ChartTooltipContent } from "@/components/ui/chart"

const data = [
  { name: "desktop", value: 65, fill: "var(--color-desktop)" },
  { name: "mobile", value: 25, fill: "var(--color-mobile)" },
]

<ChartContainer config={chartConfig} className="min-h-[300px]">
  <PieChart>
    <ChartTooltip content={<ChartTooltipContent hideLabel />} />
    <Pie
      data={data}
      dataKey="value"
      nameKey="name"
      cx="50%"
      cy="50%"
      innerRadius={60}  {/* Set > 0 for donut */}
      outerRadius={100}
      strokeWidth={2}
      paddingAngle={2}  {/* Gap between segments */}
    >
      {/* Optional center label for donut */}
      <Label content={...} />
    </Pie>
    <ChartLegend content={<ChartLegendContent nameKey="name" />} />
  </PieChart>
</ChartContainer>