Categories
React

Recharts — Scatter and Pie Charts

Spread the love

We can add charts easily to a React app with Recharts.

In this article, we’ll look at how to use it.

Scatter Chart

We can add a scatter chart with the ScatterChart component.

For example, we can write:

import React from "react";
import {
  ScatterChart,
  Scatter,
  XAxis,
  YAxis,
  CartesianGrid,
  Tooltip
} from "recharts";

const data = [
  { x: 100, y: 200, z: 200 },
  { x: 120, y: 100, z: 260 },
  { x: 170, y: 300, z: 400 }
];

export default function App() {
  return (
    <div className="App">
      <ScatterChart
        width={400}
        height={400}
        margin={{
          top: 20,
          right: 20,
          bottom: 20,
          left: 20
        }}
      >
        <CartesianGrid />
        <XAxis type="number" dataKey="x" name="stature" unit="cm" />
        <YAxis type="number" dataKey="y" name="weight" unit="kg" />
        <Tooltip cursor={{ strokeDasharray: "3 3" }} />
        <Scatter name="A school" data={data} fill="#8884d8" />
      </ScatterChart>
    </div>
  );
}

We nest the components of our chart inside the ScatterChart component.

width and height has the dimensions.

margin has the margins of the chart.

CartesianGrid has the grid in the background.

XAxis has the x-axis with the labels.

type sets the type of the x-axis.

dataKey has the property name with the values we want to display as labels.

unit has the unit we want to display at the end of the label.

Tooltip has the tooltip.

Scatter has the dots we want to display.

data has the x and y coordinates of the dots.

fill has the dot’s color.

Pie Chart

We can add a pie chart with the PieChart component.

For example, we can write:

import React from "react";
import { PieChart, Pie, Tooltip } from "recharts";

const data = [
  { name: "Group A", value: 400 },
  { name: "Group B", value: 300 },
  { name: "Group C", value: 300 }
];
export default function App() {
  return (
    <div className="App">
      <PieChart width={400} height={400}>
        <Pie
          dataKey="value"
          isAnimationActive={false}
          data={data}
          cx={200}
          cy={200}
          outerRadius={80}
          fill="#8884d8"
          label
        />
        <Tooltip />
      </PieChart>
    </div>
  );
}

to add our pie chart.

The Pie component defines the slices.

data has the data.

dataKey is the property name with the value for the slices.

label adds the labels.

fill has the fill color for the slices.

cx and cy circle’s length and width.

We can add a pie chart with 2 levels:

For example, we can write:

import React from "react";
import { PieChart, Pie, Tooltip } from "recharts";

const data = [
  { name: "Group A", value: 400 },
  { name: "Group B", value: 300 },
  { name: "Group C", value: 300 }
];

const data2 = [
  { name: "A1", value: 100 },
  { name: "A2", value: 300 },
  { name: "B1", value: 100 }
];
export default function App() {
  return (
    <div className="App">
      <PieChart width={400} height={400}>
        <Pie
          data={data}
          dataKey="value"
          cx={200}
          cy={200}
          outerRadius={60}
          fill="#8884d8"
        />
        <Pie
          data={data2}
          dataKey="value"
          cx={200}
          cy={200}
          innerRadius={70}
          outerRadius={90}
          fill="#82ca9d"
          label
        />
      </PieChart>
    </div>
  );
}

We set the outerRadius to the radius of the circle.

innerRadius and outerRadius together makes it a ring.

outerRadius is subtracted by the innerRadius .

Conclusion

We can add pie charts and scatter charts easily with Recharts.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *