CirclesWithD3.tsx 562 Bytes
Newer Older
Yoon, Daeki's avatar
Yoon, Daeki committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import React, { useEffect, useRef, useState } from "react";
import { select } from "d3-selection";
import { generateDataset } from "../helpers";

export const CirclesWithD3 = () => {
  const [dataset, setDataset] = useState(generateDataset());

  const ref = useRef(null);

  useEffect(() => {
    const svg = select(ref.current);
    svg
      .selectAll("circle")
      .data(dataset)
      .join("circle")
      .attr("cx", (d) => d[0])
      .attr("cy", (d) => d[1])
      .attr("r", 3);
  }, [dataset]);

  return <svg viewBox="0 0 100 50" ref={ref} />;
};