series

Configuration Structure

series: [{
name: string,
type: string,
color: string,
group: string,
hidden: boolean,
zIndex: number,
parsing: ApexParsing,
x: string,
y: string | string[],
z: string,
facet: string | number,
data: Array,
}]

series

The data to display in the chart. The format depends on the chart type.

For axis charts (line, area, bar, scatter, heatmap, etc.), series is an array of objects:

series: [{
  name: 'Series 1',
  data: [30, 40, 35, 50, 49, 60, 70]
}, {
  name: 'Series 2',
  data: [23, 12, 54, 61, 32, 56, 81]
}]

Each series object can have the following properties:

  • name: The name of the series (shown in legend and tooltips)
  • data: Array of data points. Can be numbers, [x, y] pairs, or objects { x, y }
  • type: Override chart type for this series (in combo charts)
  • color: Override color for this series
  • group: Group name for grouped bar charts
  • facet: Which trellis panel this series belongs to

For non-axis charts (pie, donut, radialBar, polarArea), series is a simple number array:

series: [44, 55, 13, 43, 22]

Paired data format for scatter/bubble:

series: [{
  name: 'Series 1',
  data: [
    [16.4, 5.4],
    [21.7, 2],
    [25.4, 3],
  ]
}]

Timeline / RangeBar data format:

series: [{
  data: [{
    x: 'Design',
    y: [
      new Date('2019-03-05').getTime(),
      new Date('2019-03-08').getTime()
    ]
  }]
}]

Waterfall data format. One series of signed deltas. A row flagged isSubtotal or isTotal carries no y: it draws the running total, which ApexCharts measures for you. See the waterfall guide.

series: [{
  name: 'Operating income',
  data: [
    { x: 'Net revenue', y: 8786000 },
    { x: 'Cost of sales', y: -2786000 },
    { x: 'Gross profit', isSubtotal: true },
    { x: 'Operating income', isTotal: true }
  ]
}]

Dumbbell data format. One series per measure, each carrying one value per category. ApexCharts joins them on x, so you never zip them into [low, high] pairs yourself. See the dumbbell guide.

series: [
  { name: '2020', data: [{ x: 'Backend', y: 92 }, { x: 'Mobile', y: 88 }] },
  { name: '2025', data: [{ x: 'Backend', y: 137 }, { x: 'Mobile', y: 121 }] }
]

Raw-observation data format. Histogram, violin, box plot and raincloud accept the unaggregated sample and derive the statistics themselves. Histogram takes a flat array; the rest take one datum per group with the observations in points.

series: [{
  name: 'Weight gain',
  data: [
    { x: 'DD', points: [97, 101, 88, 94, 110] },
    { x: 'DR', points: [84, 79, 91, 80, 76] }
  ]
}]

Streamgraph data format. Ordinary { x, y } series, one per band. ApexCharts computes the baseline and the stacking offsets, so the values you supply are the band thicknesses. See the streamgraph guide.

name

Name of the series, shown in the legend and in tooltips.

data

The data points. Accepts a plain array of numbers, [x, y] pairs, or objects with x and y.

x is a category label, a timestamp or a Date, and on a datetime axis all three keep millisecond resolution. y is a plain value for most charts, and a summary array for the chart types that need one: [O, H, L, C] for candlestick, [min, Q1, median, Q3, max] for a box plot. A violin takes an object carrying the precomputed density profile as [value, weight] pairs plus the raw observations drawn as jitter.

type

Overrides the chart type for this series alone, which is how a combo chart mixes a line over bars.

color

Overrides the color for this series, in place of the entry it would take from colors.

group

Group name for grouped bar charts. Series sharing a group are stacked together and stacked separately from the rest.

hidden

Start with this series hidden, as though its legend item had been clicked off. The reader can still toggle it back on.

zIndex

Paint order for this series, for controlling which one draws on top where they overlap.

facet

Which trellis panel this series belongs to.

This is the typed field for trellis.by: 'facet'. Any other key name works from plain JavaScript, and the trellis.by function form works from either.

x

The point's category label, timestamp or Date. On a datetime axis all three keep millisecond resolution.

y

The point's value. A plain number for most charts, and a summary array where the chart type needs one: [O, H, L, C] for candlestick, [min, Q1, median, Q3, max] for a box plot.

A violin takes { density, points }, where density is the precomputed profile as [value, weight] pairs. A scatter strip plot (plotOptions.scatter.jitter) takes the array of observations in the category.

points

Raw observations for a box plot point, drawn as jitter dots when plotOptions.boxPlot.points.show is enabled.

name

Label for this point, used by the charts that name points rather than series: treemap, sunburst and the other hierarchy types.

value

Value for this point, accepted as an alias of y by the hierarchy charts.

color

Overrides the colour for this point alone.

fillColor

Fill colour for this point, overriding the series fill.

strokeColor

Stroke colour for this point, overriding the series stroke.

colorValue

A second metric that drives this point's colour, independent of y which drives its size on a treemap. See plotOptions.treemap.colorScale.colorValue to read a different key instead.

children

Nested hierarchy: this point is a branch containing these children, to any depth, on a treemap or sunburst. A branch normally omits y and takes the sum of its children instead.

isSubtotal

Marks a waterfall row as a subtotal bar. Its value is measured from the steps since the previous subtotal rather than given, so the row carries no y.

isTotal

Marks a waterfall row as a total bar, summing every step from zero.

goals

Goal or target markers drawn on this point, each { name, value, strokeHeight, strokeWidth, strokeColor, strokeDashArray, strokeLineCap }. Used for actual-against-target bars.

barHeightOffset

Adjusts this bar's height relative to the series height, for a single row that should read taller or shorter than its neighbours.

columnWidthOffset

Adjusts this column's width relative to the series width.

meta

Arbitrary payload carried with the point. Untouched by the chart, and available in formatters and event handlers through w.config.series[i].data[j].meta.

density

Violin only: the precomputed density profile, as [value, weight] pairs.

points

Violin only: the raw observations, drawn as jitter over the profile.

name

Label for this goal marker, shown in the tooltip and legend.

value

Where the marker sits on the value axis. Required.

strokeHeight

Length of the marker across the bar. A fraction of the bar thickness.

strokeWidth

Thickness of the marker line.

strokeColor

Colour of the marker line.

strokeDashArray

Dash pattern of the marker line. 0 draws it solid.

strokeLineCap

End shape of the marker line: 'butt', 'square' or 'round'.

x

As series.data.x, for a child node of a hierarchy chart.

y

As series.data.y, for a child node of a hierarchy chart.

name

As series.data.name, for a child node of a hierarchy chart.

value

As series.data.value, for a child node of a hierarchy chart.

color

As series.data.color, for a child node of a hierarchy chart.

colorValue

As series.data.colorValue, for a child node of a hierarchy chart.

fillColor

As series.data.fillColor, for a child node of a hierarchy chart.

meta

As series.data.meta, for a child node of a hierarchy chart.

children

Further nesting. A hierarchy may carry children to any depth, and every branch is drawn as a real container.