From 3c06b00f69f998f2dab59c801097e629f033a32a Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Wed, 25 Oct 2023 17:39:23 +0800 Subject: [PATCH 1/3] fix: fix the issue where invalidType of scatter chart checks x and y at the same time --- .../src/component/axis/polar/interface/common.ts | 3 +++ packages/vchart/src/series/cartesian/cartesian.ts | 15 ++++++++++++++- packages/vchart/src/series/polar/polar.ts | 15 ++++++++++++++- packages/vchart/src/series/scatter/scatter.ts | 2 -- 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/packages/vchart/src/component/axis/polar/interface/common.ts b/packages/vchart/src/component/axis/polar/interface/common.ts index 86af6a90f2..1da5a9c05b 100644 --- a/packages/vchart/src/component/axis/polar/interface/common.ts +++ b/packages/vchart/src/component/axis/polar/interface/common.ts @@ -12,6 +12,9 @@ export type IPolarGrid = IGrid & { smooth?: boolean; }; export interface IPolarAxisHelper { + // axis is continuous + isContinuous: boolean; + dataToPosition: (values: any, cfg?: any) => number; coordToPoint: (point: IPolarPoint) => IPoint; pointToCoord: (point: IPoint) => IPolarPoint; diff --git a/packages/vchart/src/series/cartesian/cartesian.ts b/packages/vchart/src/series/cartesian/cartesian.ts index 3a62a0d75f..96f27cb051 100644 --- a/packages/vchart/src/series/cartesian/cartesian.ts +++ b/packages/vchart/src/series/cartesian/cartesian.ts @@ -16,7 +16,7 @@ import type { DirectionType } from '../../typings/space'; // eslint-disable-next-line no-duplicate-imports import { Direction } from '../../typings/space'; import type { Datum, StringOrNumber } from '../../typings'; -import { array, isValid } from '../../util'; +import { array, couldBeValidNumber, isValid } from '../../util'; // eslint-disable-next-line no-duplicate-imports import { isContinuous } from '@visactor/vscale'; import type { StatisticOperations } from '../../data/transforms/dimension-statistics'; @@ -449,4 +449,17 @@ export abstract class CartesianSeries { + if (this._xAxisHelper.isContinuous) { + if (!couldBeValidNumber(datum[this._spec.xField[0]])) { + return false; + } + } else if (this._yAxisHelper.isContinuous) { + if (!couldBeValidNumber(datum[this._spec.yField[0]])) { + return false; + } + } + return true; + }; } diff --git a/packages/vchart/src/series/polar/polar.ts b/packages/vchart/src/series/polar/polar.ts index 7dcc17dc99..07033d4f13 100644 --- a/packages/vchart/src/series/polar/polar.ts +++ b/packages/vchart/src/series/polar/polar.ts @@ -1,7 +1,7 @@ import type { IBaseScale } from '@visactor/vscale'; import type { IPoint, IPolarPoint } from '../../typings/coordinate'; import type { IPolarSeries } from '../interface'; -import { array, shallowCompare, isValid, isNil } from '../../util'; +import { array, isValid, isNil, couldBeValidNumber } from '../../util'; import type { IPolarAxisHelper } from '../../component/axis/polar/interface'; // eslint-disable-next-line no-duplicate-imports import { isContinuous } from '@visactor/vscale'; @@ -229,4 +229,17 @@ export abstract class PolarSeries sortDataInAxisHelper(this.angleAxisHelper, this._angleField[0], this.getViewData().latestData); } } + + protected _getInvalidDefined = (datum: Datum) => { + if (this.angleAxisHelper.isContinuous) { + if (!couldBeValidNumber(datum[this._angleField[0]])) { + return false; + } + } else if (this.radiusAxisHelper.isContinuous) { + if (!couldBeValidNumber(datum[this._radiusField[0]])) { + return false; + } + } + return true; + }; } diff --git a/packages/vchart/src/series/scatter/scatter.ts b/packages/vchart/src/series/scatter/scatter.ts index 425a2c72cb..46334caba3 100644 --- a/packages/vchart/src/series/scatter/scatter.ts +++ b/packages/vchart/src/series/scatter/scatter.ts @@ -56,8 +56,6 @@ export class ScatterSeries ex private _shapeField: string; protected _invalidType: IScatterInvalidType = 'zero'; - protected _getInvalidDefined = (datum: Datum) => - couldBeValidNumber(datum[this.getStackValueField()]) && couldBeValidNumber(datum[this.getDimensionField()[0]]); setAttrFromSpec() { super.setAttrFromSpec(); From ec2a4d665601206da9f45abfa4c83a069b37c03b Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Wed, 25 Oct 2023 17:39:41 +0800 Subject: [PATCH 2/3] docs: update changlog of rush --- ...cks-x-and-y-at-the-same-time_2023-10-25-09-39.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vchart/fix-fix-the-issue-where-invalidType-of-scatter-plot-checks-x-and-y-at-the-same-time_2023-10-25-09-39.json diff --git a/common/changes/@visactor/vchart/fix-fix-the-issue-where-invalidType-of-scatter-plot-checks-x-and-y-at-the-same-time_2023-10-25-09-39.json b/common/changes/@visactor/vchart/fix-fix-the-issue-where-invalidType-of-scatter-plot-checks-x-and-y-at-the-same-time_2023-10-25-09-39.json new file mode 100644 index 0000000000..568f344d13 --- /dev/null +++ b/common/changes/@visactor/vchart/fix-fix-the-issue-where-invalidType-of-scatter-plot-checks-x-and-y-at-the-same-time_2023-10-25-09-39.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "fix: fix the issue where invalidType of scatter chart checks x and y at the same time\n\n", + "type": "none", + "packageName": "@visactor/vchart" + } + ], + "packageName": "@visactor/vchart", + "email": "lixuef1313@163.com" +} \ No newline at end of file From 0278e9a88ad565d8fe907761c778748ce05f3aaa Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Thu, 26 Oct 2023 10:30:10 +0800 Subject: [PATCH 3/3] fix: fix the specXField need transform to array --- packages/vchart/src/series/cartesian/cartesian.ts | 12 +++++++++--- packages/vchart/src/series/polar/polar.ts | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/vchart/src/series/cartesian/cartesian.ts b/packages/vchart/src/series/cartesian/cartesian.ts index 96f27cb051..7a431f0f85 100644 --- a/packages/vchart/src/series/cartesian/cartesian.ts +++ b/packages/vchart/src/series/cartesian/cartesian.ts @@ -78,6 +78,9 @@ export abstract class CartesianSeries { if (this._xAxisHelper.isContinuous) { - if (!couldBeValidNumber(datum[this._spec.xField[0]])) { + if (!couldBeValidNumber(datum[this._specXField[0]])) { return false; } - } else if (this._yAxisHelper.isContinuous) { - if (!couldBeValidNumber(datum[this._spec.yField[0]])) { + } + if (this._yAxisHelper.isContinuous) { + if (!couldBeValidNumber(datum[this._specYField[0]])) { return false; } } diff --git a/packages/vchart/src/series/polar/polar.ts b/packages/vchart/src/series/polar/polar.ts index 07033d4f13..b5baa2874e 100644 --- a/packages/vchart/src/series/polar/polar.ts +++ b/packages/vchart/src/series/polar/polar.ts @@ -235,7 +235,8 @@ export abstract class PolarSeries if (!couldBeValidNumber(datum[this._angleField[0]])) { return false; } - } else if (this.radiusAxisHelper.isContinuous) { + } + if (this.radiusAxisHelper.isContinuous) { if (!couldBeValidNumber(datum[this._radiusField[0]])) { return false; }