Appearance
Are you an LLM? You can read better optimized documentation at /embed/docs/configuration/point-markers.md for this page in Markdown format
Point markers
Line and area charts style markers under line.pointMarker / area.pointMarker. Markers render when drawPoints is on for that series (or forced visible on a single point).
Defaults
js
line: { // or area: { … }
drawPoints: true,
pointMarker: {
shape: 'circle',
radius: 3,
fill: null, // derive from series color
stroke: '#ffffff',
strokeWidth: 1,
strokeDashArray: '', // '' = solid
series: {}, // per-series style
overrides: {}, // per-point style
},
}| Field | Notes |
|---|---|
shape | circle · square · triangle · diamond · cross |
radius | Size in px |
fill | Color, or null to use the series color |
stroke | Border color (null also derives from the series) |
strokeWidth | Border width (px) |
strokeDashArray | Border dash; '' for solid |
Resolution is three-tier: per-point → per-series → global → built-in default.
Per-series style (pointMarker.series)
Keys are 0-based series indices (string keys in JSON are fine: "0", "1"). Only set the fields you want to change.
js
line: {
drawPoints: true,
pointMarker: {
shape: 'circle',
radius: 3,
fill: null,
stroke: '#ffffff',
strokeWidth: 1,
strokeDashArray: '',
series: {
'1': { shape: 'diamond', radius: 5 },
},
overrides: {},
},
}Turn markers on for one series only via line.overrides / area.overrides (not under pointMarker):
js
line: {
drawPoints: false,
overrides: {
'0': { drawPoints: true },
},
pointMarker: { /* … */ },
}Per-point overrides (pointMarker.overrides)
Sparse map: overrides[seriesIndex][columnIndex]. Column indices are 0-based data columns (the category cells in that series row). Only list points you want to change.
js
line: {
drawPoints: true,
pointMarker: {
shape: 'circle',
radius: 3,
fill: null,
stroke: '#ffffff',
strokeWidth: 1,
strokeDashArray: '',
series: {},
overrides: {
'0': {
'2': { shape: 'square', radius: 6, fill: '#c45c26' },
'5': { visible: false },
},
},
},
}| Override field | Effect |
|---|---|
shape / radius / fill / stroke / strokeWidth / strokeDashArray | Same as global |
visible | Force show (true) or hide (false) this point, regardless of drawPoints |
Hide one point:
js
overrides: {
'0': { '3': { visible: false } },
}Emphasize a couple of points:
js
overrides: {
'0': {
'2': { radius: 6, stroke: '#0f766e', strokeWidth: 2 },
'4': { shape: 'triangle', radius: 5 },
},
}Live patches
line / area bags replace as a whole on setChartData. To add one point override without dropping others, merge client-side:
js
const cd = insight.getChartData();
const pm = cd.line.pointMarker;
const prev = pm.overrides?.['0'] || {};
insight.setChartData({
line: {
...cd.line,
pointMarker: {
...pm,
overrides: {
...pm.overrides,
'0': {
...prev,
'4': { radius: 6 },
},
},
},
},
});For a full upfront chartData object, author the sparse series / overrides maps directly.