series
Configuration Structure
series: [{}]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.
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.