import React from 'react'
import ReactApexChart from 'react-apexcharts'
import './styles.css'

// This demo also loads: https://cdn.jsdelivr.net/npm/apexcharts/dist/unit-shapes.js

const ApexChart = () => {
  const [state, setState] = React.useState({
    series: [576, 168, 42, 34],
    options: {
      chart: {
        type: 'unit',
        height: 470,
        animations: {
          enabled: true,
          speed: 900,
        },
      },
      labels: ['Engineering', 'Sales', 'Marketing', 'Operations'],
      colors: ['#1565C0', '#00B8A9', '#F2994A', '#7B8794'],
      plotOptions: {
        unit: {
          layout: 'custom',
          // One of the shapes in apexcharts/unit-shapes.
          positions: 'human',
          transition: 'flow',
          clusterLabels: {
            external: {
              show: true,
            },
          },
        },
      },
      legend: {
        show: false,
      },
    },
  })

  return (
    <div>
      <div className="wrap">
        <h1>820 people, and the crowd is the person</h1>
        <p>
          One dot per employee, coloured by department. The figure is a custom
          unit layout: the outline is scanned row by row and each row is filled
          with as many dots as fit, so the head, arms and legs come out of the
          shape itself rather than from hand-placed coordinates.
        </p>

        <div className="chart-wrap">
          <div id="chart">
            <ReactApexChart
              options={state.options}
              series={state.series}
              type="unit"
              height={470}
            />
          </div>
        </div>

        <p className="note">1 dot = 1 employee</p>
      </div>
    </div>
  )
}

export default ApexChart
Human Workforce - React Unit Charts | ApexCharts.js | ApexCharts.js