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

// This demo also loads: https://apexcharts.com/samples/assets/irregular-data-series.js

var base = new Date('01 Jan 2025 GMT').getTime()
var ts1 = base
var ts2 = base + 86400000
var ts3 = base + 518400000

var dataSet = [[], [], []]

for (var i = 0; i < 12; i++) {
  ts1 = ts1 + 86400000
  var innerArr = [ts1, dataSeries[2][i].value]
  dataSet[0].push(innerArr)
}
for (var i = 0; i < 18; i++) {
  ts2 = ts2 + 86400000
  var innerArr = [ts2, dataSeries[1][i].value]
  dataSet[1].push(innerArr)
}
for (var i = 0; i < 12; i++) {
  ts3 = ts3 + 86400000
  var innerArr = [ts3, dataSeries[0][i].value]
  dataSet[2].push(innerArr)
}

const ApexChart = () => {
  const [state, setState] = React.useState({
    series: [
      {
        name: 'Auth API',
        data: dataSet[0],
      },
      {
        name: 'Search API',
        data: dataSet[1],
      },
      {
        name: 'Media API',
        data: dataSet[2],
      },
    ],
    options: {
      chart: {
        type: 'area',
        stacked: false,
        height: 350,
        zoom: {
          enabled: false,
        },
      },
      dataLabels: {
        enabled: false,
      },
      markers: {
        size: 0,
      },
      fill: {
        type: 'gradient',
        gradient: {
          shadeIntensity: 1,
          inverseColors: false,
          opacityFrom: 0.45,
          opacityTo: 0.05,
          stops: [20, 100, 100, 100],
        },
      },
      yaxis: {
        labels: {
          style: {
            colors: '#8e8da4',
          },
          offsetX: 0,
          formatter: function (val) {
            return (val / 1000000).toFixed(1) + 'M'
          },
        },
        title: {
          text: 'Requests',
        },
        axisBorder: {
          show: false,
        },
        axisTicks: {
          show: false,
        },
      },
      xaxis: {
        type: 'datetime',
        tickAmount: 8,
        min: new Date('01/01/2025').getTime(),
        max: new Date('01/20/2025').getTime(),
        labels: {
          rotate: -15,
          rotateAlways: true,
          format: 'dd MMM yyyy',
        },
      },
      title: {
        text: 'Requests by Service (irregular intervals)',
        align: 'left',
        offsetX: 14,
      },
      tooltip: {
        shared: true,
      },
      legend: {
        position: 'top',
        horizontalAlign: 'right',
        offsetX: -10,
      },
    },
  })

  return (
    <div>
      <div id="chart">
        <ReactApexChart
          options={state.options}
          series={state.series}
          type="area"
          height={350}
        />
      </div>
    </div>
  )
}

export default ApexChart
Irregular Timeseries - React Area Charts | ApexCharts.js | ApexCharts.js