Gauge Chart

A gauge chart displays a single value against a defined range. It is well suited for KPIs, completion percentages, speedometers, and any scenario where the position of one value within a min/max bracket needs to be communicated at a glance. The gauge chart type is built on the same engine as radialBar but exposes additional configuration for partial arcs, threshold bands, tick marks, and needle indicators.

Gauge chart vs radialBar

ApexCharts has two related chart types for single-value indicators: gauge and radialBar. They share the same rendering engine but have different defaults and configuration surface.

Gauge (chart.type: 'gauge')RadialBar (chart.type: 'radialBar')
Primary useSingle KPI with a defined min/max rangeProgress percentage or multi-ring comparison
Default inputNumeric value within a min/max rangePercentage (0-100)
Needle supportYes (via plotOptions.radialBar.shape: 'needle')No
Threshold bandsYesNo
Multiple seriesNot typicalYes, each series is one ring

Use gauge for speedometer-style KPIs with a min/max range, threshold bands, and optional needle. Use radialBar for progress rings and multi-series radial comparisons.

Chart Configuration

Set the chart type to gauge and pass a single value in series.


chart: {
  type: 'gauge',
  height: 350,
},
series: [72],
labels: ['Progress'],

Data Format

Gauge charts accept a single numeric value in the series array. The value is interpreted against plotOptions.radialBar.min and plotOptions.radialBar.max (default 0 and 100). The corresponding entry in labels is rendered as the metric name beneath the value.

Basic Gauge

The default gauge uses a circular arc with the value rendered in the centre.

basic gauge

Semi-Circle Gauge

Constrain the arc to a half-circle with startAngle and endAngle. The chart auto-centres within the available canvas.


plotOptions: {
  radialBar: {
    startAngle: -90,
    endAngle: 90,
  },
},

semi-circle gauge

Threshold Bands

Use bands to colour-code value ranges along the arc, useful for indicating safe / warning / critical zones.


plotOptions: {
  radialBar: {
    bands: [
      { from: 0,  to: 30,  color: '#FF4560' },
      { from: 30, to: 70,  color: '#FEB019' },
      { from: 70, to: 100, color: '#00E396' },
    ],
  },
},

gauge with bands

Tick Marks

Render major and minor ticks along the arc to make the scale readable.


plotOptions: {
  radialBar: {
    ticks: {
      show: true,
      major: { count: 11, length: 12 },
      minor: { count: 4,  length: 6  },
    },
  },
},

gauge with ticks

Needle Indicator

Switch the gauge to a needle by setting shape: 'needle'. The needle tweens between values on updateSeries calls, which makes it suitable for realtime / dashboard scenarios.


plotOptions: {
  radialBar: {
    shape: 'needle',
    startAngle: -135,
    endAngle: 135,
    needle: {
      showValueArc: true,
      offsetY: 0,
    },
    hollow: {
      stroke: '#e0e0e0',
      strokeWidth: 1,
    },
  },
},

needle gauge

For a live-updating needle, see Live Needle Gauge.

Custom Value Label

Format the value label and add custom prose with dataLabels.name.formatter and dataLabels.value.

gauge with custom label