From 8dae2c1f4c99146aa757b2d3eec9d72846248cc7 Mon Sep 17 00:00:00 2001 From: Marco Vettorello Date: Tue, 10 Dec 2024 10:16:43 +0100 Subject: [PATCH] fix(xy): compute per series and global minPointsDistance (#2571) * Compute per series and global minPointsDistance * Add auto visibility test * fix filled check * consider single point visibility on auto * test(vrt): update screenshots [skip ci] --------- Co-authored-by: Nick Partridge Co-authored-by: elastic-datavis[bot] <98618603+elastic-datavis[bot]@users.noreply.github.com> --- .../isolated-data-points-chrome-linux.png | Bin 37421 -> 39148 bytes ...er-correctly-fit-function-chrome-linux.png | Bin 37597 -> 38748 bytes ...ce-between-point-is-small-chrome-linux.png | Bin 0 -> 40725 bytes ...e-between-point-is-enough-chrome-linux.png | Bin 0 -> 37574 bytes e2e/tests/line_stories.test.ts | 12 ++ .../xy_chart/renderer/canvas/points.ts | 8 +- .../xy_chart/renderer/canvas/xy_chart.tsx | 1 - .../chart_types/xy_chart/rendering/area.ts | 5 +- .../chart_types/xy_chart/rendering/line.ts | 12 +- .../chart_types/xy_chart/rendering/points.ts | 142 ++++++++++-------- .../chart_types/xy_chart/state/utils/types.ts | 10 +- .../chart_types/xy_chart/state/utils/utils.ts | 35 ++--- packages/charts/src/utils/geometry.ts | 5 +- .../line/12_isolated_data_points.story.tsx | 11 +- 14 files changed, 133 insertions(+), 108 deletions(-) create mode 100644 e2e/screenshots/line_stories.test.ts-snapshots/line-series-stories/points-auto-visibility/hide-points-when-space-between-point-is-small-chrome-linux.png create mode 100644 e2e/screenshots/line_stories.test.ts-snapshots/line-series-stories/points-auto-visibility/show-points-when-space-between-point-is-enough-chrome-linux.png diff --git a/e2e/screenshots/all.test.ts-snapshots/baselines/line-chart/isolated-data-points-chrome-linux.png b/e2e/screenshots/all.test.ts-snapshots/baselines/line-chart/isolated-data-points-chrome-linux.png index 4c305c0b08637eaf180f415f12ecf10d29ae8ac7..0532e50b8d09b72c2054a4d5f9d398bc5722e5a3 100644 GIT binary patch delta 19994 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 delta 18253 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 Iol`;+0LB#Ff&c&j diff --git a/e2e/screenshots/area_stories.test.ts-snapshots/area-series-stories/area-with-isolated-data-points/render-correctly-fit-function-chrome-linux.png b/e2e/screenshots/area_stories.test.ts-snapshots/area-series-stories/area-with-isolated-data-points/render-correctly-fit-function-chrome-linux.png index 1146ba411289e73f9ff6ca239ffe9cfc01eb9675..3974c17491c22b59fe12dab410394b4b96ca43fd 100644 GIT binary patch delta 20070 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 SF4Iz$!Nm)nPBqZq?)?u~49_P3 literal 0 HcmV?d00001 diff --git a/e2e/tests/line_stories.test.ts b/e2e/tests/line_stories.test.ts index 534b647a4e..b1724d2078 100644 --- a/e2e/tests/line_stories.test.ts +++ b/e2e/tests/line_stories.test.ts @@ -58,4 +58,16 @@ test.describe('Line series stories', () => { ); }); }); + test.describe('Points auto visibility', () => { + test('show points when space between point is enough', async ({ page }) => { + await common.expectChartAtUrlToMatchScreenshot(page)( + 'http://localhost:9001/?path=/story/line-chart--isolated-data-points&globals=toggles.showHeader:true;toggles.showChartTitle:false;toggles.showChartDescription:false;toggles.showChartBoundary:false;theme:light&knob-default point radius=3&knob-enable fit function=true&knob-max data points=25&knob-point shape=circle&knob-point visibility=auto&knob-point visibility min distance=20&knob-series type=line&knob-visible series[0]=A&knob-visible series[1]=B&knob-visible series[2]=C&knob-visible series[3]=D', + ); + }); + test('hide points when space between point is small', async ({ page }) => { + await common.expectChartAtUrlToMatchScreenshot(page)( + 'http://localhost:9001/?path=/story/line-chart--isolated-data-points&globals=toggles.showHeader:true;toggles.showChartTitle:false;toggles.showChartDescription:false;toggles.showChartBoundary:false;theme:light&knob-default point radius=3&knob-enable fit function=true&knob-max data points=60&knob-point shape=circle&knob-point visibility=auto&knob-point visibility min distance=20&knob-series type=line&knob-visible series[0]=A&knob-visible series[1]=B&knob-visible series[2]=C&knob-visible series[3]=D', + ); + }); + }); }); diff --git a/packages/charts/src/chart_types/xy_chart/renderer/canvas/points.ts b/packages/charts/src/chart_types/xy_chart/renderer/canvas/points.ts index 242f716920..bf21b19c3e 100644 --- a/packages/charts/src/chart_types/xy_chart/renderer/canvas/points.ts +++ b/packages/charts/src/chart_types/xy_chart/renderer/canvas/points.ts @@ -29,11 +29,13 @@ export function renderPoints( { opacity }: GeometryStateStyle, pointStyle: PointStyle, lineStrokeWidth: number, - minDistanceBetweenPoints: number, - minDistanceToShowPoints: number, + seriesMinPointDistance: number, + pointsDistanceVisibilityThreshold: number, hasConnectingLine: boolean, ) { - const isHiddenOnAuto = pointStyle.visible === 'auto' && minDistanceBetweenPoints < minDistanceToShowPoints; + // seriesMinPointDistance could be Infinity if we don't have points, or we just have a single point per series. + // In this case the point should be visible if the visibility style is set to `auto` + const isHiddenOnAuto = pointStyle.visible === 'auto' && seriesMinPointDistance < pointsDistanceVisibilityThreshold; const hideDataPoints = pointStyle.visible === 'never' || isHiddenOnAuto; const hideIsolatedDataPoints = hasConnectingLine && hideDataPoints; diff --git a/packages/charts/src/chart_types/xy_chart/renderer/canvas/xy_chart.tsx b/packages/charts/src/chart_types/xy_chart/renderer/canvas/xy_chart.tsx index 52452fd041..45ccf89f1b 100644 --- a/packages/charts/src/chart_types/xy_chart/renderer/canvas/xy_chart.tsx +++ b/packages/charts/src/chart_types/xy_chart/renderer/canvas/xy_chart.tsx @@ -207,7 +207,6 @@ const DEFAULT_PROPS: ReactiveChartStateProps = { areas: [], bars: [], lines: [], - points: [], bubbles: [], }, geometriesIndex: new IndexedGeometryMap(), diff --git a/packages/charts/src/chart_types/xy_chart/rendering/area.ts b/packages/charts/src/chart_types/xy_chart/rendering/area.ts index 69a6dedc85..e8ab78975d 100644 --- a/packages/charts/src/chart_types/xy_chart/rendering/area.ts +++ b/packages/charts/src/chart_types/xy_chart/rendering/area.ts @@ -19,7 +19,6 @@ import { } from './utils'; import { Color } from '../../../common/colors'; import { ScaleBand, ScaleContinuous } from '../../../scales'; -import { isBandScale } from '../../../scales/types'; import { CurveType, getCurveFactory } from '../../../utils/curves'; import { Dimensions } from '../../../utils/dimensions'; import { AreaGeometry } from '../../../utils/geometry'; @@ -71,7 +70,7 @@ export function renderArea( if (y1Line) lines.push(y1Line); if (y0Line) lines.push(y0Line); - const { pointGeometries, indexedGeometryMap } = renderPoints( + const { pointGeometries, indexedGeometryMap, minDistanceBetweenPoints } = renderPoints( shift - xScaleOffset, dataSeries, xScale, @@ -103,7 +102,7 @@ export function renderArea( clippedRanges, shouldClip: hasFit, hasFit, - minPointDistance: isBandScale(xScale) ? xScale.bandwidth : xScale.scale(xScale.domain[0] + xScale.minInterval), + minPointDistance: minDistanceBetweenPoints, }; return { areaGeometry, diff --git a/packages/charts/src/chart_types/xy_chart/rendering/line.ts b/packages/charts/src/chart_types/xy_chart/rendering/line.ts index 4e569c5e5f..70b1a608b4 100644 --- a/packages/charts/src/chart_types/xy_chart/rendering/line.ts +++ b/packages/charts/src/chart_types/xy_chart/rendering/line.ts @@ -12,7 +12,6 @@ import { renderPoints } from './points'; import { getClippedRanges, getY1ScaledValueFn, getYDatumValueFn, isYValueDefinedFn, MarkSizeOptions } from './utils'; import { Color } from '../../../common/colors'; import { ScaleBand, ScaleContinuous } from '../../../scales'; -import { isBandScale } from '../../../scales/types'; import { CurveType, getCurveFactory } from '../../../utils/curves'; import { Dimensions } from '../../../utils/dimensions'; import { LineGeometry } from '../../../utils/geometry'; @@ -50,7 +49,7 @@ export function renderLine( .defined((datum) => definedFn(datum, y1Accessor)) .curve(getCurveFactory(curve)); - const { pointGeometries, indexedGeometryMap } = renderPoints( + const { pointGeometries, indexedGeometryMap, minDistanceBetweenPoints } = renderPoints( shift - xScaleOffset, dataSeries, xScale, @@ -70,7 +69,7 @@ export function renderLine( // TODO we can probably avoid computing the clipped ranges if no fit function is applied. const clippedRanges = getClippedRanges(dataSeries.data, xScale, xScaleOffset); - const lineGeometry = { + const lineGeometry: LineGeometry = { line: pathGenerator(dataSeries.data) || '', points: pointGeometries, color, @@ -83,10 +82,7 @@ export function renderLine( clippedRanges, shouldClip: hasFit, hasFit, - minPointDistance: isBandScale(xScale) ? xScale.bandwidth : xScale.scale(xScale.domain[0] + xScale.minInterval), - }; - return { - lineGeometry, - indexedGeometryMap, + minPointDistance: minDistanceBetweenPoints, }; + return { lineGeometry, indexedGeometryMap }; } diff --git a/packages/charts/src/chart_types/xy_chart/rendering/points.ts b/packages/charts/src/chart_types/xy_chart/rendering/points.ts index e909cb0fce..848fd782fd 100644 --- a/packages/charts/src/chart_types/xy_chart/rendering/points.ts +++ b/packages/charts/src/chart_types/xy_chart/rendering/points.ts @@ -56,6 +56,7 @@ export function renderPoints( styleAccessor?: PointStyleAccessor, ): { pointGeometries: PointGeometry[]; + minDistanceBetweenPoints: number; indexedGeometryMap: IndexedGeometryMap; } { const indexedGeometryMap = new IndexedGeometryMap(); @@ -74,78 +75,91 @@ export function renderPoints( let isolatedPointStyle = buildPointGeometryStyles(color, isolatedPointThemeStyle); let styleOverrides: Partial | undefined = undefined; - const pointGeometries = dataSeries.data.reduce>((acc, datum, dataIndex) => { - const { x: xValue, mark } = datum; - const prev = dataSeries.data[dataIndex - 1]; - const next = dataSeries.data[dataIndex + 1]; - // don't create the point if not within the xScale domain - if (!xScale.isValueInDomain(xValue)) return acc; + const { pointGeometries, minDistanceBetweenPoints } = dataSeries.data.reduce<{ + pointGeometries: SortedArray; + minDistanceBetweenPoints: number; + prevX: number | undefined; + }>( + (acc, datum, dataIndex) => { + const { x: xValue, mark } = datum; + const prev = dataSeries.data[dataIndex - 1]; + const next = dataSeries.data[dataIndex + 1]; + // don't create the point if not within the xScale domain + if (!xScale.isValueInDomain(xValue)) return acc; - // don't create the point if it that point was filled - const x = xScale.scale(xValue); + // don't create the point if it that point was filled + const x = xScale.scale(xValue); - if (Number.isNaN(x)) return acc; + if (!isFiniteNumber(x)) return acc; - const yDatumKeyNames: Array> = isBandedSpec ? ['y0', 'y1'] : ['y1']; - const seriesIdentifier: XYChartSeriesIdentifier = getSeriesIdentifierFromDataSeries(dataSeries); - const isPointIsolated = allowIsolated && isIsolatedPoint(dataIndex, dataSeries.data.length, yDefined, prev, next); - if (styleAccessor) { - styleOverrides = getPointStyleOverrides(datum, seriesIdentifier, isPointIsolated, styleAccessor); - style = buildPointGeometryStyles(color, pointStyle, styleOverrides); - isolatedPointStyle = buildPointGeometryStyles(color, isolatedPointThemeStyle, styleOverrides); - } - yDatumKeyNames.forEach((yDatumKeyName, keyIndex) => { - const valueAccessor = getYDatumValueFn(yDatumKeyName); - const y = yDatumKeyName === 'y1' ? y1Fn(datum) : y0Fn(datum); - const originalY = getDatumYValue(datum, keyIndex === 0, isBandedSpec, dataSeries.stackMode); + if (isFiniteNumber(acc.prevX) && !isDatumFilled(datum)) { + acc.minDistanceBetweenPoints = Math.min(acc.minDistanceBetweenPoints, Math.abs(x - acc.prevX)); + } + acc.prevX = x; + + const yDatumKeyNames: Array> = isBandedSpec ? ['y0', 'y1'] : ['y1']; + const seriesIdentifier: XYChartSeriesIdentifier = getSeriesIdentifierFromDataSeries(dataSeries); + const isPointIsolated = allowIsolated && isIsolatedPoint(dataIndex, dataSeries.data.length, yDefined, prev, next); + if (styleAccessor) { + styleOverrides = getPointStyleOverrides(datum, seriesIdentifier, isPointIsolated, styleAccessor); + style = buildPointGeometryStyles(color, pointStyle, styleOverrides); + isolatedPointStyle = buildPointGeometryStyles(color, isolatedPointThemeStyle, styleOverrides); + } + yDatumKeyNames.forEach((yDatumKeyName, keyIndex) => { + const valueAccessor = getYDatumValueFn(yDatumKeyName); + const y = yDatumKeyName === 'y1' ? y1Fn(datum) : y0Fn(datum); + const originalY = getDatumYValue(datum, keyIndex === 0, isBandedSpec, dataSeries.stackMode); - // if radius is defined with the mark, limit the minimum radius to the theme radius value - const radius = isPointIsolated - ? isolatedPointRadius(lineStrokeWidth) - : markSizeOptions.enabled - ? Math.max(getRadius(mark), pointStyle.radius) - : styleOverrides?.radius ?? pointStyle.radius; + // if radius is defined with the mark, limit the minimum radius to the theme radius value + const radius = isPointIsolated + ? isolatedPointRadius(lineStrokeWidth) + : markSizeOptions.enabled + ? Math.max(getRadius(mark), pointStyle.radius) + : styleOverrides?.radius ?? pointStyle.radius; - const pointGeometry: PointGeometry = { - x, - y: y === null ? NaN : y, - radius, - color, - style: isPointIsolated ? isolatedPointStyle : style, - value: { - x: xValue, - y: originalY, - mark, - accessor: isBandedSpec && keyIndex === 0 ? BandedAccessorType.Y0 : BandedAccessorType.Y1, - datum: datum.datum, - }, - transform: { - x: shift, - y: 0, - }, - seriesIdentifier, - panel, - isolated: isPointIsolated, - }; - indexedGeometryMap.set(pointGeometry, geometryType); - // use the geometry only if the yDatum in contained in the current yScale domain - if ( - isFiniteNumber(y) && - yDefined(datum, valueAccessor) && - yScale.isValueInDomain(valueAccessor(datum)) && - !isDatumFilled(datum) - ) { - if (needSorting) { - inplaceInsertInSortedArray(acc, pointGeometry, (p) => p?.radius ?? NaN); - } else { - acc.push(pointGeometry); + const pointGeometry: PointGeometry = { + x, + y: y === null ? NaN : y, + radius, + color, + style: isPointIsolated ? isolatedPointStyle : style, + value: { + x: xValue, + y: originalY, + mark, + accessor: isBandedSpec && keyIndex === 0 ? BandedAccessorType.Y0 : BandedAccessorType.Y1, + datum: datum.datum, + }, + transform: { + x: shift, + y: 0, + }, + seriesIdentifier, + panel, + isolated: isPointIsolated, + }; + indexedGeometryMap.set(pointGeometry, geometryType); + // use the geometry only if the yDatum in contained in the current yScale domain + if ( + isFiniteNumber(y) && + yDefined(datum, valueAccessor) && + yScale.isValueInDomain(valueAccessor(datum)) && + !isDatumFilled(datum) + ) { + if (needSorting) { + inplaceInsertInSortedArray(acc.pointGeometries, pointGeometry, (p) => p?.radius ?? NaN); + } else { + acc.pointGeometries.push(pointGeometry); + } } - } - }); - return acc; - }, []); + }); + return acc; + }, + { pointGeometries: [], minDistanceBetweenPoints: Infinity, prevX: undefined }, + ); return { pointGeometries, + minDistanceBetweenPoints, indexedGeometryMap, }; } diff --git a/packages/charts/src/chart_types/xy_chart/state/utils/types.ts b/packages/charts/src/chart_types/xy_chart/state/utils/types.ts index 89a18eb8d5..54de2abb29 100644 --- a/packages/charts/src/chart_types/xy_chart/state/utils/types.ts +++ b/packages/charts/src/chart_types/xy_chart/state/utils/types.ts @@ -8,14 +8,7 @@ import { SmallMultiplesSeriesDomains } from '../../../../common/panel_utils'; import { ScaleBand, ScaleContinuous } from '../../../../scales'; -import { - PointGeometry, - BarGeometry, - AreaGeometry, - LineGeometry, - BubbleGeometry, - PerPanel, -} from '../../../../utils/geometry'; +import { BarGeometry, AreaGeometry, LineGeometry, BubbleGeometry, PerPanel } from '../../../../utils/geometry'; import { GroupId } from '../../../../utils/ids'; import { XDomain, YDomain } from '../../domains/types'; import { IndexedGeometryMap } from '../../utils/indexed_geometry_map'; @@ -48,7 +41,6 @@ export interface ComputedScales { /** @internal */ export interface Geometries { - points: PointGeometry[]; bars: Array>; areas: Array>; lines: Array>; diff --git a/packages/charts/src/chart_types/xy_chart/state/utils/utils.ts b/packages/charts/src/chart_types/xy_chart/state/utils/utils.ts index 63dbc7be04..37a6c5c818 100644 --- a/packages/charts/src/chart_types/xy_chart/state/utils/utils.ts +++ b/packages/charts/src/chart_types/xy_chart/state/utils/utils.ts @@ -19,14 +19,7 @@ import { TextMeasure } from '../../../../utils/bbox/canvas_text_bbox_calculator' import { isFiniteNumber, isNil, isUniqueArray, mergePartial, Rotation } from '../../../../utils/common'; import { CurveType } from '../../../../utils/curves'; import { Dimensions, Size } from '../../../../utils/dimensions'; -import { - AreaGeometry, - BarGeometry, - BubbleGeometry, - LineGeometry, - PerPanel, - PointGeometry, -} from '../../../../utils/geometry'; +import { AreaGeometry, BarGeometry, BubbleGeometry, LineGeometry, PerPanel } from '../../../../utils/geometry'; import { GroupId, SpecId } from '../../../../utils/ids'; import { SeriesCompareFn } from '../../../../utils/series_sort'; import { ColorConfig, Theme } from '../../../../utils/themes/theme'; @@ -307,7 +300,6 @@ function renderGeometries( fallBackTickFormatter: TickFormatter, measureText: TextMeasure, ): Omit { - const points: PointGeometry[] = []; const bars: Array> = []; const areas: Array> = []; const lines: Array> = []; @@ -325,7 +317,9 @@ function renderGeometries( bubblePoints: 0, }; const barsPadding = enableHistogramMode ? chartTheme.scales.histogramPadding : chartTheme.scales.barsPadding; - + // This var remains Infinity if we don't have points, or we just have a single point per series. + // In this case the point should be visible if the visibility style is set to `auto` + let globalMinPointsDistance = Infinity; dataSeries.forEach((ds) => { const spec = getSpecsById(seriesSpecs, ds.specId); if (spec === undefined) { @@ -463,11 +457,12 @@ function renderGeometries( }); geometriesCounts.linePoints += renderedLines.lineGeometry.points.length; geometriesCounts.lines += 1; + globalMinPointsDistance = Math.min(globalMinPointsDistance, renderedLines.lineGeometry.minPointDistance); } else if (isAreaSeriesSpec(spec)) { const areaShift = barIndexOrder && barIndexOrder.length > 0 ? barIndexOrder.length : 1; const areaSeriesStyle = getAreaSeriesStyles(chartTheme.areaSeriesStyle, spec.areaSeriesStyle); const xScaleOffset = computeXScaleOffset(xScale, enableHistogramMode, spec.histogramModeAlignment); - const renderedAreas = renderArea( + const renderedArea = renderArea( // move the point on half of the bandwidth if we have mixed bars/lines (xScale.bandwidth * areaShift) / 2, ds, @@ -487,22 +482,28 @@ function renderGeometries( hasFitFnConfigured(spec.fit), spec.pointStyleAccessor, ); - geometriesIndex.merge(renderedAreas.indexedGeometryMap); + geometriesIndex.merge(renderedArea.indexedGeometryMap); areas.push({ panel, - value: renderedAreas.areaGeometry, + value: renderedArea.areaGeometry, }); - geometriesCounts.areasPoints += renderedAreas.areaGeometry.points.length; + geometriesCounts.areasPoints += renderedArea.areaGeometry.points.length; geometriesCounts.areas += 1; + globalMinPointsDistance = Math.min(globalMinPointsDistance, renderedArea.areaGeometry.minPointDistance); } }); return { geometries: { - points, bars, - areas, - lines, + areas: areas.map((a) => { + a.value.minPointDistance = globalMinPointsDistance; + return a; + }), + lines: lines.map((l) => { + l.value.minPointDistance = globalMinPointsDistance; + return l; + }), bubbles, }, geometriesIndex, diff --git a/packages/charts/src/utils/geometry.ts b/packages/charts/src/utils/geometry.ts index 59f5953944..cddf78785e 100644 --- a/packages/charts/src/utils/geometry.ts +++ b/packages/charts/src/utils/geometry.ts @@ -13,6 +13,7 @@ import { BarSeriesStyle, PointStyle, PointShape, LineSeriesStyle, AreaSeriesStyl import { XYChartSeriesIdentifier } from '../chart_types/xy_chart/utils/series'; import { LabelOverflowConstraint } from '../chart_types/xy_chart/utils/specs'; import { Color } from '../common/colors'; +import { Pixels } from '../common/geometry'; import { Fill, Stroke } from '../geoms/types'; /** @@ -122,7 +123,7 @@ export interface LineGeometry { clippedRanges: ClippedRanges; shouldClip: boolean; hasFit: boolean; - minPointDistance: number; + minPointDistance: Pixels; } /** @internal */ @@ -144,7 +145,7 @@ export interface AreaGeometry { clippedRanges: ClippedRanges; shouldClip: boolean; hasFit: boolean; - minPointDistance: number; + minPointDistance: Pixels; } /** @internal */ diff --git a/storybook/stories/line/12_isolated_data_points.story.tsx b/storybook/stories/line/12_isolated_data_points.story.tsx index a115942991..44b00c9ddc 100644 --- a/storybook/stories/line/12_isolated_data_points.story.tsx +++ b/storybook/stories/line/12_isolated_data_points.story.tsx @@ -15,6 +15,7 @@ import { KIBANA_METRICS } from '@elastic/charts/src/utils/data_samples/test_data import { ChartsStory } from '../../types'; import { useBaseTheme } from '../../use_base_theme'; import { customKnobs } from '../utils/knobs'; +import { getMultiSelectKnob } from '../utils/knobs/custom'; export const Example: ChartsStory = (_, { title, description }) => { const fitEnabled = boolean('enable fit function', false); @@ -45,6 +46,8 @@ export const Example: ChartsStory = (_, { title, description }) => { }, ); + const visibleSeries = getMultiSelectKnob('visible series', { A: 'A', B: 'B', C: 'C', D: 'D' }, ['A', 'B', 'C', 'D']); + return ( { } return [...d, 'C']; }), - ]} + ...KIBANA_METRICS.metrics.kibana_os_load.v3.data.slice(0, maxDataPoints).map((d, i) => { + if (i % 5 !== 0) { + return [d[0], null, 'D']; + } + return [d[0], i % 2 === 0 ? 2 : 4, 'D']; + }), + ].filter((d) => visibleSeries.includes(d[2] as unknown as 'A' | 'B' | 'C' | 'D'))} fit={fitEnabled ? Fit.Linear : undefined} curve={CurveType.CURVE_MONOTONE_X} />