From 18163398f91c90e9eaf55cf465c7ade5f6f5f88f Mon Sep 17 00:00:00 2001 From: Aaron <943720372@qq.com> Date: Sun, 23 Apr 2023 17:49:24 +0800 Subject: [PATCH] fix: update legend component inferring strategies (#4906) * fix: add extra rules to avoid unexcept component inferring * refactor: update legend inferring config --- .../snapshots/static/bodyPointScatterPlot.png | Bin 0 -> 72148 bytes .../snapshots/static/moviesPointBin.png | Bin 24943 -> 24932 bytes .../plots/static/body-point-scatter-plot.ts | 19 ++ __tests__/plots/static/index.ts | 1 + src/component/constant.ts | 237 ++++++++++++++++++ src/component/legendContinuousBlockSize.ts | 5 +- src/component/legendContinuousSize.ts | 33 ++- src/runtime/component.ts | 100 +------- 8 files changed, 282 insertions(+), 113 deletions(-) create mode 100644 __tests__/integration/snapshots/static/bodyPointScatterPlot.png create mode 100644 __tests__/plots/static/body-point-scatter-plot.ts create mode 100644 src/component/constant.ts diff --git a/__tests__/integration/snapshots/static/bodyPointScatterPlot.png b/__tests__/integration/snapshots/static/bodyPointScatterPlot.png new file mode 100644 index 0000000000000000000000000000000000000000..4602044c0b1c40dcc1619da4fd813585ac9dc87f GIT binary patch literal 72148 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%0D{PC> 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%0Dd*F!OW^zCc<{FBuN#ki^cx2}3LzHu&>M6D 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 diff --git a/__tests__/plots/static/body-point-scatter-plot.ts b/__tests__/plots/static/body-point-scatter-plot.ts new file mode 100644 index 0000000000..2cb5721205 --- /dev/null +++ b/__tests__/plots/static/body-point-scatter-plot.ts @@ -0,0 +1,19 @@ +import { G2Spec } from '../../../src'; + +export function bodyPointScatterPlot(): G2Spec { + return { + type: 'point', + data: { + type: 'fetch', + value: 'data/body.json', + }, + encode: { + x: 'height', + y: 'weight', + size: 'weight', + color: 'red', + }, + }; +} + +bodyPointScatterPlot.maxError = 100; diff --git a/__tests__/plots/static/index.ts b/__tests__/plots/static/index.ts index f2ae564e02..f065aa27ff 100644 --- a/__tests__/plots/static/index.ts +++ b/__tests__/plots/static/index.ts @@ -5,6 +5,7 @@ export { alphabetIntervalLabelContrastReverse } from './alphabet-interval-label- export { alphabetIntervalDataSort } from './alphabet-interval-data-sort'; export { alphabetIntervalFunnel } from './alphabet-interval-funnel'; export { alphabetIntervalPyramid } from './alphabet-interval-pyramid'; +export { bodyPointScatterPlot } from './body-point-scatter-plot'; export { gammaRandomLineSortXQuantitative } from './gamma-random-line-sortx-quantitative'; export { alphabetIntervalTransposed } from './alphabet-interval-transposed'; export { stateAgesIntervalStacked } from './stateages-interval-stacked'; diff --git a/src/component/constant.ts b/src/component/constant.ts new file mode 100644 index 0000000000..f3aada31d6 --- /dev/null +++ b/src/component/constant.ts @@ -0,0 +1,237 @@ +// [legend type, [channels, scale type][][]] +type InferStrategy = [string, [string, string][][]]; + +/** + * @examples + * ✅ + * color - `discrete`, shape - `constant` + * legendCategory.rule[27] is matched + * + * ❎ + * shape - `discrete`, size - `constant` + * There are no rules to match + * + */ +export const LEGEND_INFER_STRATEGIES: InferStrategy[] = [ + [ + 'legendCategory', + [ + [ + ['color', 'discrete'], + ['opacity', 'discrete'], + ['shape', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['opacity', 'constant'], + ['shape', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['opacity', 'discrete'], + ['shape', 'constant'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['opacity', 'constant'], + ['shape', 'constant'], + ['size', 'constant'], + ], + [ + ['color', 'constant'], + ['opacity', 'discrete'], + ['shape', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'constant'], + ['opacity', 'constant'], + ['shape', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'constant'], + ['opacity', 'discrete'], + ['shape', 'constant'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['shape', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['opacity', 'discrete'], + ['shape', 'discrete'], + ], + [ + ['color', 'discrete'], + ['opacity', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['opacity', 'constant'], + ['shape', 'discrete'], + ], + [ + ['color', 'discrete'], + ['opacity', 'constant'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['shape', 'constant'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['opacity', 'discrete'], + ['shape', 'constant'], + ], + [ + ['color', 'discrete'], + ['opacity', 'constant'], + ['shape', 'constant'], + ], + [ + ['color', 'constant'], + ['shape', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'constant'], + ['opacity', 'discrete'], + ['shape', 'discrete'], + ], + [ + ['color', 'constant'], + ['opacity', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'constant'], + ['opacity', 'constant'], + ['shape', 'discrete'], + ], + // [ + // ['color', 'constant'], + // ['opacity', 'constant'], + // ['size', 'constant'], + // ], + // [ + // ['color', 'constant'], + // ['shape', 'constant'], + // ['size', 'constant'], + // ], + [ + ['color', 'constant'], + ['opacity', 'discrete'], + ['shape', 'constant'], + ], + [ + ['color', 'discrete'], + ['shape', 'discrete'], + ], + [ + ['color', 'discrete'], + ['size', 'constant'], + ], + [ + ['color', 'discrete'], + ['opacity', 'discrete'], + ], + [ + ['color', 'discrete'], + ['opacity', 'constant'], + ], + [ + ['color', 'discrete'], + ['shape', 'constant'], + ], + [ + ['color', 'constant'], + ['shape', 'discrete'], + ], + [ + ['color', 'constant'], + ['size', 'constant'], + ], + [ + ['color', 'constant'], + ['opacity', 'discrete'], + ], + // [ + // ['color', 'constant'], + // ['opacity', 'constant'], + // ], + // [ + // ['color', 'constant'], + // ['shape', 'constant'], + // ], + [['color', 'discrete']], + // [['color', 'constant']], + ], + ], + [ + 'legendContinuousSize', + [ + [ + ['color', 'continuous'], + ['opacity', 'continuous'], + ['size', 'continuous'], + ], + [ + ['color', 'constant'], + ['opacity', 'continuous'], + ['size', 'continuous'], + ], + [ + ['color', 'continuous'], + ['size', 'continuous'], + ], + [ + ['color', 'constant'], + ['size', 'continuous'], + ], + ], + ], + [ + 'legendContinuousBlockSize', + [ + [ + ['color', 'distribution'], + ['opacity', 'distribution'], + ['size', 'distribution'], + ], + [ + ['color', 'distribution'], + ['size', 'distribution'], + ], + ], + ], + [ + 'legendContinuousBlock', + [ + [ + ['color', 'distribution'], + ['opacity', 'continuous'], + ], + [['color', 'distribution']], + ], + ], + [ + 'legendContinuous', + [ + [ + ['color', 'continuous'], + ['opacity', 'continuous'], + ], + [['color', 'continuous']], + ], + ], +]; diff --git a/src/component/legendContinuousBlockSize.ts b/src/component/legendContinuousBlockSize.ts index 8e0e29785a..efa9964139 100644 --- a/src/component/legendContinuousBlockSize.ts +++ b/src/component/legendContinuousBlockSize.ts @@ -1,14 +1,13 @@ import { GuideComponentComponent as GCC } from '../runtime'; import { LegendContinuous, LegendContinuousOptions } from './legendContinuous'; +import { LegendContinuousSize } from './legendContinuousSize'; export type LegendContinuousBlockSizeOptions = LegendContinuousOptions; export const LegendContinuousBlockSize: GCC< LegendContinuousBlockSizeOptions > = (options) => { - return LegendContinuous( - Object.assign({}, { type: 'size', block: true, tick: false }, options), - ); + return LegendContinuousSize(Object.assign({}, { block: true }, options)); }; LegendContinuousBlockSize.props = { diff --git a/src/component/legendContinuousSize.ts b/src/component/legendContinuousSize.ts index 2a415c873c..2f3c32aae5 100644 --- a/src/component/legendContinuousSize.ts +++ b/src/component/legendContinuousSize.ts @@ -1,4 +1,5 @@ import { GuideComponentComponent as GCC } from '../runtime'; +import { scaleOf } from './utils'; import { LegendContinuous, LegendContinuousOptions } from './legendContinuous'; export type LegendContinuousSizeOptions = LegendContinuousOptions; @@ -6,18 +7,26 @@ export type LegendContinuousSizeOptions = LegendContinuousOptions; export const LegendContinuousSize: GCC = ( options, ) => { - return LegendContinuous( - Object.assign( - {}, - { - type: 'size', - tick: false, - labelFilter: (datum, index, data) => - index === 0 || index === data.length - 1, - }, - options, - ), - ); + return (context) => { + const { scales } = context; + const sizeScale = scaleOf(scales, 'size'); + return LegendContinuous( + Object.assign( + {}, + { + type: 'size', + tick: false, + data: sizeScale.getOptions().domain.map((value, index) => ({ + value, + label: String(value), + })), + labelFilter: (datum, index, data) => + index === 0 || index === data.length - 1, + }, + options, + ), + )(context); + }; }; LegendContinuousSize.props = { diff --git a/src/runtime/component.ts b/src/runtime/component.ts index 7101887f22..9513c30d0b 100644 --- a/src/runtime/component.ts +++ b/src/runtime/component.ts @@ -12,6 +12,7 @@ import { } from '../coordinate'; import { combine } from '../utils/array'; import { defined } from '../utils/helper'; +import { LEGEND_INFER_STRATEGIES } from '../component/constant'; import { coordOf, isHelix, @@ -191,103 +192,6 @@ function inferLegendComponentType( if (scalesByField.size === 0) return []; - /** - * - * @param arr - * @param main necessary channel - * @returns - */ - const createStrategy = (arr: T[], main: T): T[][] => { - const result = combine(arr); - result.forEach((c) => c.unshift(main)); - result.push([main]); - return result.sort((a, b) => b.length - a.length); - }; - - const createCategoryStrategy = () => { - // category legend only support constant size - const color = [ - ['color', 'discrete'], - ['color', 'constant'], - ]; - const shape = [ - ['shape', 'discrete'], - ['shape', 'constant'], - ]; - const size = [['size', 'constant']]; - const opacity = [ - ['opacity', 'discrete'], - ['opacity', 'constant'], - ]; - - const stg: [string, string][][] = []; - for (const cr of color) { - for (const sp of shape) { - for (const sz of size) { - for (const op of opacity) { - if (![cr, sp, sz, op].every((d) => d[1] === 'constant')) { - stg.push( - ...(createStrategy([sp, sz, op], cr) as [string, string][][]), - ); - } - } - } - } - } - // refactor above code - - return stg.sort((a, b) => b.length - a.length); - }; - - // [legend type, [[channels, scale types]]][] - const strategy: [string, [string, string][][]][] = [ - ['legendCategory', createCategoryStrategy()], - [ - 'legendContinuousSize', - [ - [ - ['color', 'continuous'], - ['opacity', 'continuous'], - ['size', 'continuous'], - ], - [ - ['color', 'constant'], - ['opacity', 'continuous'], - ['size', 'continuous'], - ], - [ - ['color', 'continuous'], - ['size', 'continuous'], - ], - [ - ['color', 'constant'], - ['size', 'continuous'], - ], - ], - ], - [ - 'legendContinuousBlockSize', - [ - [ - ['color', 'distribution'], - ['opacity', 'distribution'], - ['size', 'distribution'], - ], - [ - ['color', 'distribution'], - ['size', 'distribution'], - ], - ], - ], - [ - 'legendContinuousBlock', - createStrategy([['opacity', 'continuous']], ['color', 'distribution']), - ], - [ - 'legendContinuous', - createStrategy([['opacity', 'continuous']], ['color', 'continuous']), - ], - ]; function getScaleType(scale: G2ScaleOptions): string { const { type } = scale; if (typeof type !== 'string') return null; @@ -308,7 +212,7 @@ function inferLegendComponentType( const sort = (arr: string[][]) => arr.sort((a, b) => a[0].localeCompare(b[0])); - for (const [componentType, accords] of strategy) { + for (const [componentType, accords] of LEGEND_INFER_STRATEGIES) { for (const { option, combination } of options) { if (accords.some((accord) => isEqual(sort(accord), sort(option)))) { return [componentType, combination] as [string, G2ScaleOptions[]];