Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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"
}
3 changes: 3 additions & 0 deletions packages/vchart/src/component/axis/polar/interface/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
21 changes: 20 additions & 1 deletion packages/vchart/src/series/cartesian/cartesian.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -78,6 +78,9 @@ export abstract class CartesianSeries<T extends ICartesianSeriesSpec = ICartesia
this._fieldY2 = f;
}

protected _specXField: string[];
protected _specYField: string[];

protected _direction: DirectionType = Direction.vertical;
get direction() {
return this._direction;
Expand Down Expand Up @@ -246,6 +249,8 @@ export abstract class CartesianSeries<T extends ICartesianSeriesSpec = ICartesia
this.setFieldX(this._spec.xField);
this.setFieldY(this._spec.yField);
this.setFieldZ(this._spec.zField);
this._specXField = array(this._spec.xField);
this._specYField = array(this._spec.yField);
if (isValid(this._spec.direction)) {
this._direction = this._spec.direction;
}
Expand Down Expand Up @@ -449,4 +454,18 @@ export abstract class CartesianSeries<T extends ICartesianSeriesSpec = ICartesia
);
}
}

protected _getInvalidDefined = (datum: Datum) => {
if (this._xAxisHelper.isContinuous) {
if (!couldBeValidNumber(datum[this._specXField[0]])) {
return false;
}
}
if (this._yAxisHelper.isContinuous) {
if (!couldBeValidNumber(datum[this._specYField[0]])) {
return false;
}
}
return true;
};
}
16 changes: 15 additions & 1 deletion packages/vchart/src/series/polar/polar.ts
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -229,4 +229,18 @@ export abstract class PolarSeries<T extends IPolarSeriesSpec = IPolarSeriesSpec>
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;
}
}
if (this.radiusAxisHelper.isContinuous) {
if (!couldBeValidNumber(datum[this._radiusField[0]])) {
return false;
}
}
return true;
};
}
2 changes: 0 additions & 2 deletions packages/vchart/src/series/scatter/scatter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ export class ScatterSeries<T extends IScatterSeriesSpec = IScatterSeriesSpec> ex
private _shapeField: string;

protected _invalidType: IScatterInvalidType = 'zero';
protected _getInvalidDefined = (datum: Datum) =>
couldBeValidNumber(datum[this.getStackValueField()]) && couldBeValidNumber(datum[this.getDimensionField()[0]]);

setAttrFromSpec() {
super.setAttrFromSpec();
Expand Down