Style Segments allow customising the style of a series for defined ranges along an axis, making it easier to highlight thresholds, distinguish data ranges, or separate actual and predicted values.
Segmentation Copy Link
The segmentation
option takes a key
to determine which axis to use, and a segments
array for the styles.
series: [
{
type: 'area',
yKey: 'variance',
xKey: 'date',
strokeWidth: 2,
fillOpacity: 0.3,
fill: 'green', //used for the series
stroke: 'green', //used for the series
segmentation: {
key: 'y', //segment along the y-axis
segments: [
{
stop: 0, //domain minimum until 0
fill: 'red', //used for this segment
stroke: 'red', //used for this segment
},
],
},
},
];
In this configuration:
- The series
fill
andstroke
are red when values fall below 0 on the y-axis. - The series
fill
andstroke
are green when values are above 0 on the y-axis. - Properties
fillOpacity
andstrokeWidth
not specified in the segment are inherited from the series.
Segmentation Key Copy Link
Set segmentation.key: 'x'
to segment along the xKey
axis, or segmentation.key: 'y'
to segment along the yKey
axis.
series: [
{
type: 'line',
xKey: 'date',
yKey: 'value',
segmentation: {
key: 'x',
segments: [
{
start: new Date('2025-01-01'),
lineDash: [5, 10],
},
],
},
},
];
In the example above:
- The series uses a solid stroke for 2024 and a dashed stroke for 2025 to distinguish actual and forecast data.
Segments Copy Link
Each segment in the segments
array is defined by bounds and provides style overrides:
start
/stop
- The axis range for the segment style to start and stop at.
- Omit
start
to begin at the axis minimum or thestop
of the previous segment. - Omit
stop
to end at the axis maximum or thestart
of the next segment.
Style properties
- These are the same styling keys available on the series, such as
stroke
andfill
. - Unspecified properties fall back to the main series options or defaults.
- These are the same styling keys available on the series, such as