• English
  • RaceScatter

    Description

    Dynamic scatter chart (Race Scatter Chart)

    Suitable for showing how data distributions change over time, with data point positions representing two measure values.

    Applicable scenarios:

    - Analyze distribution patterns in two-dimensional space and show how they change over time.

    - Show how correlations between multiple variables evolve over time.

    - Observe movement paths of data points in two-dimensional space.

    Note

    Dynamic scatter chart:

    - Both the X-axis and Y-axis are numeric axes (continuous data) and support mapping multiple measures.

    - Supports controlling the time dimension through the player to dynamically show data changes.

    - Shows dynamic data changes intuitively through changes in data point positions.

    chartType

    Type: "raceScatter"

    Description

    Dynamic scatter chart, suitable for showing how data distributions change over time.

    dataset

    Type: Record[]

    Description

    Data source

    dimensions

    Type: RaceScatterDimension[] | undefined

    Description

    Dimensions, used to distinguish different data series and for legend display.

    id

    Type: string

    Description

    Field ID corresponding to the dimension

    alias

    Type: string | undefined

    Description

    Dimension alias

    timeFormat

    Type: TimeFormat | undefined

    Description

    Dimension date format configuration

    type

    Type: "year" | "quarter" | "month" | "week" | "day" | "hour" | "minute" | "second"

    Description

    Time granularity, determines the date display precision

    encoding

    Type: "color" | "detail" | "tooltip" | "label" | "row" | "column" | "player" | undefined

    Description

    The channel to which dimensions are mapped in race scatter charts.

    - color: supports mapping multiple dimensions to the color channel

    - detail: supports mapping multiple dimensions to the detail channel

    - tooltip: supports mapping multiple dimensions to the tooltip channel

    - label: supports mapping multiple dimensions to the label channel

    - row: supports mapping multiple dimensions to the row channel

    - column: supports mapping multiple dimensions to the column channel

    - player: supports mapping multiple dimensions to the player channel

    measures

    Type: ScatterMeasure[] | undefined

    Description

    Measures. At least two measures are required and mapped to the X-axis and Y-axis respectively.

    id

    Type: string

    Description

    Field ID corresponding to the dimension

    alias

    Type: string | undefined

    Description

    Dimension alias

    autoFormat

    Type: boolean | undefined

    Description

    Automatic number formatting, enabled by default, highest priority

    When autoFormat=true, it overrides all numFormat configurations

    When enabled, chart data labels and tooltips will automatically select the appropriate formatting based on measure values and locale

    Formatting rules: decimal numbers with compact notation enabled, minimum 0 decimal places, maximum 2 decimal places, automatic rounding, using the browser's Intl.NumberFormat implementation

    For example:

    - locale=zh-CN: 749740.264 → 74.45万

    - locale=en-US: 749740.264 → 744.5K

    numFormat

    Type: NumFormat | undefined

    Description

    Custom number formatting for measures; automatically applied to labels and tooltips

    Note: To use custom formatting, you must explicitly set autoFormat=false; otherwise autoFormat will override this config

    type

    Type: "number" | "percent" | "permille" | "scientific" | undefined

    Description

    Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation

    ratio

    Type: number | undefined

    Description

    Number format ratio, cannot be 0

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    symbol

    Type: string | undefined

    Description

    Number format symbol, e.g. %, ‰

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    thousandSeparator

    Type: boolean | undefined

    Description

    Thousands separator for number formatting

    suffix

    Type: string | undefined

    Description

    Number format suffix

    prefix

    Type: string | undefined

    Description

    Number format prefix

    fractionDigits

    Type: number | undefined

    Description

    Decimal places for number formatting, using the browser's Intl.NumberFormat minimumFractionDigits and maximumFractionDigits; lower priority than significantDigits

    Example - 1234.5678 converts to 1235, fractionDigits:0 (roundingMode:halfCeil) - 1234.5678 converts to 1234.6, fractionDigits:1 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, fractionDigits:2 (roundingMode:halfCeil) - 1234.5678 converts to 1230.568, fractionDigits:3 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, fractionDigits:4 (roundingMode:halfCeil) - 1234.5678 converts to 1234.56780, fractionDigits:5 (roundingMode:halfCeil)

    significantDigits

    Type: number | undefined

    Description

    Significant digits for number formatting, using the browser's Intl.NumberFormat minimumSignificantDigits and maximumSignificantDigits; higher priority than fractionDigits

    Example - 1234.5678 converts to 1000, significantDigits:1 - 1234.5678 converts to 1200, significantDigits:2 - 1234.5678 converts to 1230, significantDigits:3 - 1234.5678 converts to 1234, significantDigits:4 - 1234.5678 converts to 1234.6, significantDigits:5 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, significantDigits:6 (roundingMode:halfCeil) - 1234.5678 converts to 1234.568, significantDigits:7 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, significantDigits:8 (roundingMode:halfCeil)

    roundingPriority

    Type: "morePrecision" | "lessPrecision" | undefined

    Description

    Rounding priority for number formatting when both significantDigits and fractionDigits are set; uses the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingPriority

    Example - 1234.5678 converts to 1230, significantDigits:3 (roundingPriority:lessPrecision) - 1234.5678 converts to 1234.5678, significantDigits:3 (roundingPriority:morePrecision)

    roundingMode

    Type: "floor" | "ceil" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined

    Description

    Rounding mode for number formatting, using the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingMode

    format

    Type: NumFormat | undefined

    type

    Type: "number" | "percent" | "permille" | "scientific" | undefined

    Description

    Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation

    ratio

    Type: number | undefined

    Description

    Number format ratio, cannot be 0

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    symbol

    Type: string | undefined

    Description

    Number format symbol, e.g. %, ‰

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    thousandSeparator

    Type: boolean | undefined

    Description

    Thousands separator for number formatting

    suffix

    Type: string | undefined

    Description

    Number format suffix

    prefix

    Type: string | undefined

    Description

    Number format prefix

    fractionDigits

    Type: number | undefined

    Description

    Decimal places for number formatting, using the browser's Intl.NumberFormat minimumFractionDigits and maximumFractionDigits; lower priority than significantDigits

    Example - 1234.5678 converts to 1235, fractionDigits:0 (roundingMode:halfCeil) - 1234.5678 converts to 1234.6, fractionDigits:1 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, fractionDigits:2 (roundingMode:halfCeil) - 1234.5678 converts to 1230.568, fractionDigits:3 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, fractionDigits:4 (roundingMode:halfCeil) - 1234.5678 converts to 1234.56780, fractionDigits:5 (roundingMode:halfCeil)

    significantDigits

    Type: number | undefined

    Description

    Significant digits for number formatting, using the browser's Intl.NumberFormat minimumSignificantDigits and maximumSignificantDigits; higher priority than fractionDigits

    Example - 1234.5678 converts to 1000, significantDigits:1 - 1234.5678 converts to 1200, significantDigits:2 - 1234.5678 converts to 1230, significantDigits:3 - 1234.5678 converts to 1234, significantDigits:4 - 1234.5678 converts to 1234.6, significantDigits:5 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, significantDigits:6 (roundingMode:halfCeil) - 1234.5678 converts to 1234.568, significantDigits:7 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, significantDigits:8 (roundingMode:halfCeil)

    roundingPriority

    Type: "morePrecision" | "lessPrecision" | undefined

    Description

    Rounding priority for number formatting when both significantDigits and fractionDigits are set; uses the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingPriority

    Example - 1234.5678 converts to 1230, significantDigits:3 (roundingPriority:lessPrecision) - 1234.5678 converts to 1234.5678, significantDigits:3 (roundingPriority:morePrecision)

    roundingMode

    Type: "floor" | "ceil" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined

    Description

    Rounding mode for number formatting, using the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingMode

    encoding

    Type: "xAxis" | "color" | "tooltip" | "label" | "yAxis" | "size" | undefined

    Description

    Channel to which the measure is mapped

    - xAxis: measure mapped to the x-axis

    - yAxis: measure mapped to the y-axis

    - size: measure mapped to size

    - color: measure mapped to color

    - label: measure mapped to label

    - tooltip: measure mapped to tooltip

    parentId

    Type: string | undefined

    Description

    In flat measure configuration form, builds a tree-shaped measure group. parentId points to the id of the parent measure group, used for building the measure tree

    Tip

    There are two ways to configure the measure tree: Option 1 is directly configuring a measure tree with children; Option 2 is configuring a flat measure list with parentId. These two methods cannot be used simultaneously

    player

    Type: Player | undefined

    Description

    Player configuration. Used to specify the time dimension, which is the core configuration for Race Bar Charts.

    Specifies the field name for playing (animating), which must be a dimension.

    Warning

    This feature does not support Table, PivotTable, DualAxis, Histogram, BoxPlot, etc., nor does it support measure combinations or row/column pivoting.

    maxCount

    Type: number | false | undefined

    Description

    Maximum number of items to play; data exceeding this count will be truncated. Set to false for no limit.

    interval

    Type: number | undefined

    Description

    Playback interval in milliseconds (ms).

    autoPlay

    Type: boolean | undefined

    Description

    Whether to start playback automatically.

    loop

    Type: boolean | undefined

    Description

    Whether to loop playback.

    position

    Type: "left" | "top" | "right" | "bottom" | undefined

    Description

    Player position.

    railColor

    Type: string | undefined

    Description

    Color of the player's progress bar rail.

    fontFamily

    Type: string | undefined

    Description

    Player text font family

    fontSize

    Type: number | undefined

    Description

    Player text font size

    trackColor

    Type: string | undefined

    Description

    Color of the player's progress bar track.

    sliderHandleColor

    Type: string | undefined

    Description

    Color of the player's progress bar slider handle.

    sliderHandleBorderColor

    Type: string | undefined

    Description

    Border color of the slider handle.

    startButtonColor

    Type: string | undefined

    Description

    Color of the player's start button.

    pauseButtonColor

    Type: string | undefined

    Description

    Color of the player's pause button.

    backwardButtonColor

    Type: string | undefined

    Description

    Color of the player's backward button.

    forwardButtonColor

    Type: string | undefined

    Description

    Color of the player's forward button.

    sort

    Type: Sort | undefined

    Description

    X-axis sort configuration, supports sorting by dimensions or measures, as well as custom sort order.

    Category axis sort configuration, supports sorting by dimensions or measures, as well as custom sort order.

    Example sort: { orderBy: 'profit', order: 'asc', } sort: { customOrder:['2019', '2020', '2021'] }

    - order:'asc' - orderBy:'date' or - customOrder:['2019', '2020', '2021']

    order

    Type: "asc" | "desc" | undefined

    Description

    Sort order, supports 'asc' or 'desc'

    Example order:'asc'

    orderBy

    Type: string | undefined

    Description

    The field the sort depends on; can be a dimension ID or measure ID

    Example - orderBy:'date' - orderBy:'profit'

    customOrder

    Type: string[] | undefined

    Description

    Custom sort order, applied directly to the category axis

    page

    Type: Page | undefined

    Description

    Pagination

    Pagination configuration for the chart's pagination feature

    field

    Type: string

    Description

    Pagination field; specifies the field name for pagination, must be a dimension

    currentValue

    Type: string

    Description

    Current pagination value; specifies the value used to determine the current page

    Example '2023-01-01'

    backgroundColor

    Type: BackgroundColor

    Description

    Chart background color

    Background color can be a color string (e.g. 'red', 'blue'), or a hex, rgb, or rgba value (e.g. '#ff0000', 'rgba(255,0,0,0.5)')

    size

    Type: number | number[] | undefined

    Description

    Scatter chart measure size, used to define the size or size range of data points in the Scatter chart.

    - If size is a single number, e.g., 10, it means the size of data points is fixed at 10.

    - If size is an array of length 2, e.g., [10, 40], it means the size of data points ranges from 10 to 40.

    - Mutually exclusive with sizeRange; has lower priority than sizeRange.

    sizeRange

    Type: number | number[] | undefined

    Description

    Scatter chart measure size range, used to define the size range of data points in the Scatter chart.

    - If sizeRange is an array of length 2, e.g., [10, 40], it means the size of data points ranges from 10 to 40.

    - If sizeRange is a single number, e.g., 10, it means the size of data points is fixed at 10.

    - Mutually exclusive with size; has higher priority than size.

    color

    Type: Color | undefined

    Description

    Color

    Color configuration for defining the chart's color scheme, including color lists, color mappings, and color gradients.

    colorScheme

    Type: string[] | undefined

    Description

    Discrete color scheme used to define the colors of different elements in the chart

    Example ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']

    linearColorScheme

    Type: string[] | undefined

    Description

    Linear gradient color scheme used to define the colors of different elements in the chart

    Example ['#FFCDD2, #F8BBD0]

    colorMapping

    Type: Record<string, string> | undefined

    Description

    Color mapping used to map data values to specific colors

    Example { 'profit': 'red', 'sales': 'blue', }

    positiveColor

    Type: string | undefined

    Description

    Positive/negative color configuration; defines the color for positive values in the chart

    negativeColor

    Type: string | undefined

    Description

    Positive/negative color configuration; defines the color for negative values in the chart

    label

    Type: Label | undefined

    Description

    Label

    Label configuration for defining chart data labels, including their position, format, and style.

    enable

    Type: false | true

    Description

    Whether label functionality is enabled

    wrap

    Type: boolean | undefined

    Description

    Whether labels wrap to the next line

    showValue

    Type: boolean | undefined

    Description

    Whether labels display measure values

    In multi-measure scenarios, there is no concern about conflicting values, because all plot-related measures go through foldMeasures processing and are merged into one measure representing a single data point

    Note: encoding's label has higher priority; this config does not affect encoding's label

    showValuePercent

    Type: boolean | undefined

    Description

    Whether labels display measure values in percentage

    In multi-measure scenarios, there is no concern about conflicting values, because all plot-related measures go through foldMeasures processing and are merged into one measure representing a single data point

    Note: encoding's label has higher priority; this config does not affect encoding's label

    showDimension

    Type: boolean | undefined

    Description

    Whether labels display dimension labels

    Display all dimension labels

    Note: encoding's label has higher priority; this config does not affect encoding's label

    autoFormat

    Type: boolean | undefined

    Description

    Automatic number formatting, enabled by default, highest priority

    When autoFormat=true, it overrides all numFormat configurations

    When enabled, chart data labels and tooltips will automatically select the appropriate formatting based on measure values and locale

    Formatting rules: decimal numbers with compact notation enabled, minimum 0 decimal places, maximum 2 decimal places, automatic rounding, using the browser's Intl.NumberFormat implementation

    For example:

    - locale=zh-CN: 749740.264 → 74.45万

    - locale=en-US: 749740.264 → 744.5K

    numFormat

    Type: NumFormat | undefined

    Description

    Custom number formatting for measures; automatically applied to labels and tooltips

    Note: To use custom formatting, you must explicitly set autoFormat=false; otherwise autoFormat will override this config

    type

    Type: "number" | "percent" | "permille" | "scientific" | undefined

    Description

    Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation

    ratio

    Type: number | undefined

    Description

    Number format ratio, cannot be 0

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    symbol

    Type: string | undefined

    Description

    Number format symbol, e.g. %, ‰

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    thousandSeparator

    Type: boolean | undefined

    Description

    Thousands separator for number formatting

    suffix

    Type: string | undefined

    Description

    Number format suffix

    prefix

    Type: string | undefined

    Description

    Number format prefix

    fractionDigits

    Type: number | undefined

    Description

    Decimal places for number formatting, using the browser's Intl.NumberFormat minimumFractionDigits and maximumFractionDigits; lower priority than significantDigits

    Example - 1234.5678 converts to 1235, fractionDigits:0 (roundingMode:halfCeil) - 1234.5678 converts to 1234.6, fractionDigits:1 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, fractionDigits:2 (roundingMode:halfCeil) - 1234.5678 converts to 1230.568, fractionDigits:3 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, fractionDigits:4 (roundingMode:halfCeil) - 1234.5678 converts to 1234.56780, fractionDigits:5 (roundingMode:halfCeil)

    significantDigits

    Type: number | undefined

    Description

    Significant digits for number formatting, using the browser's Intl.NumberFormat minimumSignificantDigits and maximumSignificantDigits; higher priority than fractionDigits

    Example - 1234.5678 converts to 1000, significantDigits:1 - 1234.5678 converts to 1200, significantDigits:2 - 1234.5678 converts to 1230, significantDigits:3 - 1234.5678 converts to 1234, significantDigits:4 - 1234.5678 converts to 1234.6, significantDigits:5 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, significantDigits:6 (roundingMode:halfCeil) - 1234.5678 converts to 1234.568, significantDigits:7 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, significantDigits:8 (roundingMode:halfCeil)

    roundingPriority

    Type: "morePrecision" | "lessPrecision" | undefined

    Description

    Rounding priority for number formatting when both significantDigits and fractionDigits are set; uses the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingPriority

    Example - 1234.5678 converts to 1230, significantDigits:3 (roundingPriority:lessPrecision) - 1234.5678 converts to 1234.5678, significantDigits:3 (roundingPriority:morePrecision)

    roundingMode

    Type: "floor" | "ceil" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined

    Description

    Rounding mode for number formatting, using the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingMode

    labelFontSize

    Type: number | undefined

    Description

    Label font size

    labelFontWeight

    Type: string | number | undefined

    Description

    Label font weight

    labelBackgroundColor

    Type: string | undefined

    Description

    Label background color

    labelStroke

    Type: string | undefined

    Description

    Label stroke color

    labelColor

    Type: string | undefined

    Description

    Label font color

    labelColorSmartInvert

    Type: boolean | undefined

    Description

    Whether the label automatically inverts font color based on element color

    labelPosition

    Type: "inside" | "outside" | undefined

    Description

    label position

    labelOverlap

    Type: boolean | undefined

    Description

    Whether the label anti-overlap function is enabled

    selector

    Type: Selector | Selectors | undefined

    Description

    Label filtering, default relationship between selectors is 'Or'

    field

    Type: string

    Description

    Dimension field, the ID of a dimension item

    operator

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    op

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    Same as operator

    value

    Type: string | number | (string | number)[]

    Description

    Select data items based on dimension values, supports arrays

    dynamicFilter

    Type: ChartDynamicFilter | undefined

    Description

    Dynamic filter (AI-generated code execution)

    Implement complex data filtering logic via AI-generated JavaScript code

    Key Capabilities:

    - Supports any complex data filtering conditions

    - Use built-in utility functions for data manipulation

    - Secure execution in browser environment (Web Worker sandbox)

    Environment requirements: Only supports browser environment; Node.js environment will use fallback

    Note: selector and dynamicFilter cannot be used simultaneously; dynamicFilter has higher priority

    Chart dynamic filter configuration

    Filter chart markers (bars, points, etc.) via AI-generated JavaScript code

    type

    Type: "row-with-field"

    description

    Type: string | undefined

    Description

    User requirement description (natural language)

    Example "Highlight columns with sales greater than 1000"

    "Highlight the column with the highest profit margin in each region"

    code

    Type: string

    Description

    AI-generated JavaScript filtering code

    - Only built-in utility functions (accessible via _ or R) are allowed

    - Input parameters: data (array), each item contains a __row_index field representing the row number

    - Must return an array of row index and field combinations: Array<{ __row_index: number, field: string }>

    - __row_index represents the original row number; field represents the field to highlight

    - Forbidden to use: eval, Function, asynchronous operations, DOM API, network requests

    Example Highlight the 'sales' field for data items with sales greater than 1000

    const filtered = _.filter(data, item => item.sales > 1000);
    return _.map(filtered, item => ({
    __row_index: item.__row_index,
    field: 'sales'
    }));

    Highlight the data item with the highest profit margin in each region

    const grouped = _.groupBy(data, 'area');
    const maxItems = _.map(grouped, group =>
    _.maxBy(group, item => item.profit / item.sales)
    );
    return _.flatten(
    _.map(maxItems, item => [
    { __row_index: item.__row_index, field: 'product' },
    { __row_index: item.__row_index, field: 'profit' }
    ])
    );

    Highlight data items filtered by multiple conditions

    const filtered = _.filter(data, item => {
    const profitRate = item.profit / item.sales;
    return profitRate > 0.2 && item.sales > 5000;
    });
    return _.flatten(
    _.map(filtered, item => [
    { __row_index: item.__row_index, field: 'product' },
    { __row_index: item.__row_index, field: 'sales' }
    ])
    );

    fallback

    Type: Selector | Selectors | undefined

    Description

    Fallback plan when code execution fails or environment is not supported

    field

    Type: string

    Description

    Dimension field, the ID of a dimension item

    operator

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    op

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    Same as operator

    value

    Type: string | number | (string | number)[]

    Description

    Select data items based on dimension values, supports arrays

    result

    Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined

    Description

    Dynamic filter execution results (runtime field)

    Populated during the prepare() stage, read-only at runtime

    success

    Type: false | true

    data

    Type: T[] | undefined

    error

    Type: string | undefined

    legend

    Type: Legend | undefined

    Description

    legend

    Legend configuration, used to define chart legends, including position, format, style, etc.

    enable

    Type: boolean | undefined

    Description

    Whether the legend function is enabled

    Example enable: true

    border

    Type: boolean | undefined

    Description

    Whether the legend border is enabled

    Warning

    Only effective for discrete legends

    Example border: true

    labelColor

    Type: string | undefined

    Description

    Label font color

    pagerIconColor

    Type: string | undefined

    Description

    Pager icon color

    pagerIconDisableColor

    Type: string | undefined

    Description

    Pager icon disabled color

    labelFontSize

    Type: number | undefined

    Description

    Legend font size

    Example labelFontSize: 10

    labelFontColor

    Type: string | undefined

    Description

    Legend font color

    labelFontWeight

    Type: string | number | undefined

    Description

    Legend font weight

    Example labelFontWeight: 400

    shapeType

    Type: "circle" | "cross" | "diamond" | "square" | "arrow" | "arrow2Left" | "arrow2Right" | "wedge" | "thinTriangle" | "triangle" | "triangleUp" | "triangleDown" | "triangleRight" | "triangleLeft" | "stroke" | "star" | "wye" | "rect" | "arrowLeft" | "arrowRight" | "rectRound" | "roundLine" | undefined

    Description

    Legend shape

    Warning

    Only effective for discrete legends

    Example shapeType: 'circle'

    position

    Type: "left" | "leftTop" | "leftBottom" | "lt" | "lb" | "top" | "topLeft" | "topRight" | "tl" | "tr" | "right" | "rightTop" | "rightBottom" | "rt" | "rb" | "bottom" | "bottomLeft" | "bottomRight" | "bl" | "br" | undefined

    Description

    Legend position

    Example position: 'rightTop'

    maxSize

    Type: number | undefined

    Description

    Maximum number of columns or rows when many legend items exist

    If position is horizontal (bottom, bottomLeft, bottomRight, bl, br, top, topLeft, topRight, tl, tr), maxSize controls the number of columns.

    If position is vertical (left, leftTop, leftBottom, lt, lb, right, rightTop, rightBottom, rt, rb), maxSize controls the number of rows.

    Warning

    Only effective for discrete legends

    Example maxSize: 2

    tooltip

    Type: Tooltip | undefined

    Description

    tooltips

    Tooltip configuration, used to define chart tooltips, including position, format, style, etc.

    enable

    Type: false | true

    Description

    Whether label functionality is enabled

    brush

    Type: Brush | undefined

    Description

    Brush Selection

    Brush configuration, used to enable/disable brush selection capability

    Chart brush selection configuration

    enable

    Type: boolean | undefined

    Description

    Whether brush selection is enabled

    brushType

    Type: "rect" | "x" | "y" | "polygon" | undefined

    Description

    Brush type

    Defines the shape and selection direction of the brush

    - rect: rectangular brush selection; can select in both X-axis and Y-axis directions at the same time

    - polygon: polygon brush selection; draws an arbitrary polygon by clicking multiple points

    - x: X-axis brush selection; only selects in the X-axis direction, with no restriction in the Y-axis direction

    - y: Y-axis brush selection; only selects in the Y-axis direction, with no restriction in the X-axis direction

    brushMode

    Type: "single" | "multiple" | undefined

    Description

    Brush mode, single or multiple selection

    Define the selection mode

    - single: Single selection mode, only one brush box allowed at a time

    - multiple: Multiple selection mode, multiple brush boxes can exist simultaneously

    removeOnClick

    Type: boolean | undefined

    Description

    Whether to clear the selection box when selection ends

    inBrushStyle

    Type: { opacity?: number; stroke?: string; lineWidth?: number; } | undefined

    Description

    Style for selected data items

    Define the style for data points within the brush

    opacity

    Type: number | undefined

    Description

    Opacity

    Opacity of selected data points, range 0-1

    stroke

    Type: string | undefined

    Description

    Stroke color

    lineWidth

    Type: number | undefined

    Description

    Stroke width

    outOfBrushStyle

    Type: { opacity?: number; stroke?: string; lineWidth?: number; } | undefined

    Description

    Style for unselected data items

    Define the style for data points outside the brush

    opacity

    Type: number | undefined

    Description

    Opacity

    Opacity of selected data points, range 0-1

    stroke

    Type: string | undefined

    Description

    Stroke color

    lineWidth

    Type: number | undefined

    Description

    Stroke width

    xAxis

    Type: XLinearAxis | undefined

    Description

    X-axis; a numeric axis. X-axis configuration used to define the chart's X-axis, including its position, format, style, etc.

    visible

    Type: boolean | undefined

    Description

    Whether the axis is visible

    min

    Type: number | undefined

    Description

    The minimum value of the axis, takes priority over 'nice' and 'zero'

    max

    Type: number | boolean | undefined

    Description

    The maximum value of the axis, takes priority over 'nice' and 'zero'; if true, it is automatically calculated based on the data range.

    log

    Type: boolean | undefined

    Description

    Whether to use a logarithmic axis, only effective for numeric axes

    logBase

    Type: number | undefined

    Description

    The base of the logarithmic axis, only effective for numeric axes

    nice

    Type: boolean | undefined

    Description

    Whether to automatically adjust the axis scale interval to make labels more readable; this is ignored if min and max are set and is only effective for numeric axes.

    inverse

    Type: boolean | undefined

    Description

    Whether the axis is reversed, only effective for numeric axes

    zero

    Type: boolean | undefined

    Description

    Whether to force display of 0 on the axis; this is ignored if min and max are set and is only effective for numeric axes.

    autoFormat

    Type: boolean | undefined

    Description

    Automatic number formatting, enabled by default, highest priority

    When autoFormat=true, it overrides all numFormat configurations

    When enabled, chart data labels and tooltips will automatically select the appropriate formatting based on measure values and locale

    Formatting rules: decimal numbers with compact notation enabled, minimum 0 decimal places, maximum 2 decimal places, automatic rounding, using the browser's Intl.NumberFormat implementation

    For example:

    - locale=zh-CN: 749740.264 → 74.45万

    - locale=en-US: 749740.264 → 744.5K

    numFormat

    Type: NumFormat | undefined

    Description

    Custom number formatting for measures; automatically applied to labels and tooltips

    Note: To use custom formatting, you must explicitly set autoFormat=false; otherwise autoFormat will override this config

    type

    Type: "number" | "percent" | "permille" | "scientific" | undefined

    Description

    Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation

    ratio

    Type: number | undefined

    Description

    Number format ratio, cannot be 0

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    symbol

    Type: string | undefined

    Description

    Number format symbol, e.g. %, ‰

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    thousandSeparator

    Type: boolean | undefined

    Description

    Thousands separator for number formatting

    suffix

    Type: string | undefined

    Description

    Number format suffix

    prefix

    Type: string | undefined

    Description

    Number format prefix

    fractionDigits

    Type: number | undefined

    Description

    Decimal places for number formatting, using the browser's Intl.NumberFormat minimumFractionDigits and maximumFractionDigits; lower priority than significantDigits

    Example - 1234.5678 converts to 1235, fractionDigits:0 (roundingMode:halfCeil) - 1234.5678 converts to 1234.6, fractionDigits:1 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, fractionDigits:2 (roundingMode:halfCeil) - 1234.5678 converts to 1230.568, fractionDigits:3 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, fractionDigits:4 (roundingMode:halfCeil) - 1234.5678 converts to 1234.56780, fractionDigits:5 (roundingMode:halfCeil)

    significantDigits

    Type: number | undefined

    Description

    Significant digits for number formatting, using the browser's Intl.NumberFormat minimumSignificantDigits and maximumSignificantDigits; higher priority than fractionDigits

    Example - 1234.5678 converts to 1000, significantDigits:1 - 1234.5678 converts to 1200, significantDigits:2 - 1234.5678 converts to 1230, significantDigits:3 - 1234.5678 converts to 1234, significantDigits:4 - 1234.5678 converts to 1234.6, significantDigits:5 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, significantDigits:6 (roundingMode:halfCeil) - 1234.5678 converts to 1234.568, significantDigits:7 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, significantDigits:8 (roundingMode:halfCeil)

    roundingPriority

    Type: "morePrecision" | "lessPrecision" | undefined

    Description

    Rounding priority for number formatting when both significantDigits and fractionDigits are set; uses the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingPriority

    Example - 1234.5678 converts to 1230, significantDigits:3 (roundingPriority:lessPrecision) - 1234.5678 converts to 1234.5678, significantDigits:3 (roundingPriority:morePrecision)

    roundingMode

    Type: "floor" | "ceil" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined

    Description

    Rounding mode for number formatting, using the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingMode

    label

    Type: { visible?: boolean; labelColor?: string; labelFontSize?: number; labelFontWeight?: number; labelAngle?: number; } | undefined

    Description

    X-axis tick label

    visible

    Type: boolean | undefined

    Description

    Whether the label is visible

    labelColor

    Type: string | undefined

    Description

    Label color

    labelFontSize

    Type: number | undefined

    Description

    Label font size

    labelFontWeight

    Type: number | undefined

    Description

    Label font weight

    labelAngle

    Type: number | undefined

    Description

    Label rotation angle

    line

    Type: { visible?: boolean; lineColor?: string; lineWidth?: number; } | undefined

    Description

    X-axis line

    visible

    Type: boolean | undefined

    Description

    Whether the label is visible

    lineColor

    Type: string | undefined

    Description

    Axis line color

    lineWidth

    Type: number | undefined

    Description

    Stroke width

    tick

    Type: { visible?: boolean; tickInside?: boolean; tickColor?: string; tickSize?: number; } | undefined

    Description

    X-axis tick

    visible

    Type: boolean | undefined

    Description

    Whether the label is visible

    tickInside

    Type: boolean | undefined

    Description

    Whether the tick is oriented inward

    tickColor

    Type: string | undefined

    Description

    Tick color

    tickSize

    Type: number | undefined

    Description

    Tick size

    title

    Type: { visible?: boolean; titleText?: string; titleColor?: string; titleFontSize?: number; titleFontWeight?: number; } | undefined

    Description

    X-axis title

    visible

    Type: boolean | undefined

    Description

    Whether the label is visible

    titleText

    Type: string | undefined

    Description

    Title text, defaults to the field configuration

    titleColor

    Type: string | undefined

    Description

    Title color

    titleFontSize

    Type: number | undefined

    Description

    Title font size

    titleFontWeight

    Type: number | undefined

    Description

    Title font weight

    grid

    Type: { visible?: boolean; gridColor?: string; gridWidth?: number; gridLineDash?: number[]; } | undefined

    Description

    X-axis grid line

    visible

    Type: boolean | undefined

    gridColor

    Type: string | undefined

    Description

    Grid line color

    gridWidth

    Type: number | undefined

    Description

    Grid line width

    gridLineDash

    Type: number[] | undefined

    Description

    Grid line type

    animation

    Type: { duration?: number; easing?: string; } | undefined

    Description

    X-axis animation configuration

    duration

    Type: number | undefined

    Description

    Animation duration

    easing

    Type: string | undefined

    Description

    Animation easing function

    yAxis

    Type: YLinearAxis | undefined

    Description

    Y-axis

    Numeric axis, Y-axis configuration, used to define the Y-axis including position, format, style, etc.

    visible

    Type: boolean | undefined

    Description

    Whether the axis is visible

    min

    Type: number | undefined

    Description

    The minimum value of the axis, takes priority over 'nice' and 'zero'

    max

    Type: number | boolean | undefined

    Description

    The maximum value of the axis, takes priority over 'nice' and 'zero'; if true, it is automatically calculated based on the data range.

    log

    Type: boolean | undefined

    Description

    Whether to use a logarithmic axis, only effective for numeric axes

    logBase

    Type: number | undefined

    Description

    The base of the logarithmic axis, only effective for numeric axes

    nice

    Type: boolean | undefined

    Description

    Whether to automatically adjust the axis scale interval to make labels more readable; this is ignored if min and max are set and is only effective for numeric axes.

    inverse

    Type: boolean | undefined

    Description

    Whether the axis is reversed, only effective for numeric axes

    zero

    Type: boolean | undefined

    Description

    Whether to force display of 0 on the axis; this is ignored if min and max are set and is only effective for numeric axes.

    autoFormat

    Type: boolean | undefined

    Description

    Automatic number formatting, enabled by default, highest priority

    When autoFormat=true, it overrides all numFormat configurations

    When enabled, chart data labels and tooltips will automatically select the appropriate formatting based on measure values and locale

    Formatting rules: decimal numbers with compact notation enabled, minimum 0 decimal places, maximum 2 decimal places, automatic rounding, using the browser's Intl.NumberFormat implementation

    For example:

    - locale=zh-CN: 749740.264 → 74.45万

    - locale=en-US: 749740.264 → 744.5K

    numFormat

    Type: NumFormat | undefined

    Description

    Custom number formatting for measures; automatically applied to labels and tooltips

    Note: To use custom formatting, you must explicitly set autoFormat=false; otherwise autoFormat will override this config

    type

    Type: "number" | "percent" | "permille" | "scientific" | undefined

    Description

    Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation

    ratio

    Type: number | undefined

    Description

    Number format ratio, cannot be 0

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    symbol

    Type: string | undefined

    Description

    Number format symbol, e.g. %, ‰

    Example

    • 100000 converts to 10万, ratio:10000, symbol:"万"
    • 100000 converts to 10K, ratio:1000, symbol:"K"

    thousandSeparator

    Type: boolean | undefined

    Description

    Thousands separator for number formatting

    suffix

    Type: string | undefined

    Description

    Number format suffix

    prefix

    Type: string | undefined

    Description

    Number format prefix

    fractionDigits

    Type: number | undefined

    Description

    Decimal places for number formatting, using the browser's Intl.NumberFormat minimumFractionDigits and maximumFractionDigits; lower priority than significantDigits

    Example - 1234.5678 converts to 1235, fractionDigits:0 (roundingMode:halfCeil) - 1234.5678 converts to 1234.6, fractionDigits:1 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, fractionDigits:2 (roundingMode:halfCeil) - 1234.5678 converts to 1230.568, fractionDigits:3 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, fractionDigits:4 (roundingMode:halfCeil) - 1234.5678 converts to 1234.56780, fractionDigits:5 (roundingMode:halfCeil)

    significantDigits

    Type: number | undefined

    Description

    Significant digits for number formatting, using the browser's Intl.NumberFormat minimumSignificantDigits and maximumSignificantDigits; higher priority than fractionDigits

    Example - 1234.5678 converts to 1000, significantDigits:1 - 1234.5678 converts to 1200, significantDigits:2 - 1234.5678 converts to 1230, significantDigits:3 - 1234.5678 converts to 1234, significantDigits:4 - 1234.5678 converts to 1234.6, significantDigits:5 (roundingMode:halfCeil) - 1234.5678 converts to 1234.57, significantDigits:6 (roundingMode:halfCeil) - 1234.5678 converts to 1234.568, significantDigits:7 (roundingMode:halfCeil) - 1234.5678 converts to 1234.5678, significantDigits:8 (roundingMode:halfCeil)

    roundingPriority

    Type: "morePrecision" | "lessPrecision" | undefined

    Description

    Rounding priority for number formatting when both significantDigits and fractionDigits are set; uses the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingPriority

    Example - 1234.5678 converts to 1230, significantDigits:3 (roundingPriority:lessPrecision) - 1234.5678 converts to 1234.5678, significantDigits:3 (roundingPriority:morePrecision)

    roundingMode

    Type: "floor" | "ceil" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined

    Description

    Rounding mode for number formatting, using the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingMode

    label

    Type: { visible?: boolean; labelColor?: string; labelFontSize?: number; labelFontWeight?: number; labelAngle?: number; } | undefined

    Description

    X-axis tick label

    visible

    Type: boolean | undefined

    Description

    Whether the label is visible

    labelColor

    Type: string | undefined

    Description

    Label color

    labelFontSize

    Type: number | undefined

    Description

    Label font size

    labelFontWeight

    Type: number | undefined

    Description

    Label font weight

    labelAngle

    Type: number | undefined

    Description

    Label rotation angle

    line

    Type: { visible?: boolean; lineColor?: string; lineWidth?: number; } | undefined

    Description

    X-axis line

    visible

    Type: boolean | undefined

    Description

    Whether the label is visible

    lineColor

    Type: string | undefined

    Description

    Axis line color

    lineWidth

    Type: number | undefined

    Description

    Stroke width

    tick

    Type: { visible?: boolean; tickInside?: boolean; tickColor?: string; tickSize?: number; } | undefined

    Description

    X-axis tick

    visible

    Type: boolean | undefined

    Description

    Whether the label is visible

    tickInside

    Type: boolean | undefined

    Description

    Whether the tick is oriented inward

    tickColor

    Type: string | undefined

    Description

    Tick color

    tickSize

    Type: number | undefined

    Description

    Tick size

    title

    Type: { visible?: boolean; titleText?: string; titleColor?: string; titleFontSize?: number; titleFontWeight?: number; } | undefined

    Description

    X-axis title

    visible

    Type: boolean | undefined

    Description

    Whether the label is visible

    titleText

    Type: string | undefined

    Description

    Title text, defaults to the field configuration

    titleColor

    Type: string | undefined

    Description

    Title color

    titleFontSize

    Type: number | undefined

    Description

    Title font size

    titleFontWeight

    Type: number | undefined

    Description

    Title font weight

    grid

    Type: { visible?: boolean; gridColor?: string; gridWidth?: number; gridLineDash?: number[]; } | undefined

    Description

    X-axis grid line

    visible

    Type: boolean | undefined

    gridColor

    Type: string | undefined

    Description

    Grid line color

    gridWidth

    Type: number | undefined

    Description

    Grid line width

    gridLineDash

    Type: number[] | undefined

    Description

    Grid line type

    animation

    Type: { duration?: number; easing?: string; } | undefined

    Description

    X-axis animation configuration

    duration

    Type: number | undefined

    Description

    Animation duration

    easing

    Type: string | undefined

    Description

    Animation easing function

    crosshairLine

    Type: CrosshairLine | undefined

    Description

    Vertical indicator line

    Vertical indicator line displayed when hovering over the chart

    Crosshair configuration, used for displaying crosshair lines (indicator lines) on the chart

    visible

    Type: boolean | undefined

    Description

    Whether the axis is visible

    lineColor

    Type: string | undefined

    Description

    Crosshair line color

    labelColor

    Type: string | undefined

    Description

    Label font color

    labelVisible

    Type: boolean | undefined

    Description

    Whether to display the crosshair label

    labelBackgroundColor

    Type: string | undefined

    Description

    Label background color

    theme

    Type: Theme | undefined

    Description

    Theme configuration

    Theme

    Built-in light and dark themes; new custom themes can be defined via registerTheme.

    length

    Type: number

    brand

    Type: brand

    pointStyle

    Type: PointStyle | PointStyle[] | undefined

    Description

    Point element style configuration, used to define the style for chart point elements, including colors, borders, etc.

    Supports global styles or conditional style configurations.

    Data filter.

    If a selector is configured, it provides four types of data matching: numeric selector, partial data selector, conditional dimension selector, and conditional measure selector.

    If no selector is configured, the style applies globally.

    selector

    Type: Selector | Selectors | undefined

    Description

    Data selector

    If a selector is configured, it provides four types of data matching: numeric selector, partial data selector, conditional dimension selector, and conditional measure selector.

    If no selector is configured, the style applies globally.

    Example Numeric selector selector = "tool" selector = ["tool", "book"] selector = 100 selector = [100, 200]

    Partial data selector selector = { profit: 100 } selector = [{ profit: 100 }, { profit: 200 }]

    Conditional dimension selector selector = { field: 'category', operator: 'in', value: 'tool' } selector = { field: 'category', operator: 'not in', value: 'book' }

    Conditional measure selector selector = { field: 'profit', operator: '>=', value: 100 } selector = { field: 'profit', operator: 'between' value: [100, 300] }

    field

    Type: string

    Description

    Dimension field, the ID of a dimension item

    operator

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    op

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    Same as operator

    value

    Type: string | number | (string | number)[]

    Description

    Select data items based on dimension values, supports arrays

    dynamicFilter

    Type: ChartDynamicFilter | undefined

    Description

    Dynamic filter (AI-generated code execution)

    Implement complex data filtering logic via AI-generated JavaScript code

    Key Capabilities:

    - Supports any complex data filtering conditions

    - Use built-in utility functions for data manipulation

    - Secure execution in browser environment (Web Worker sandbox)

    Environment requirements: Only supports browser environment; Node.js environment will use fallback

    Note: selector and dynamicFilter cannot be used simultaneously; dynamicFilter has higher priority

    Chart dynamic filter configuration

    Filter chart markers (bars, points, etc.) via AI-generated JavaScript code

    type

    Type: "row-with-field"

    description

    Type: string | undefined

    Description

    User requirement description (natural language)

    Example "Highlight columns with sales greater than 1000"

    "Highlight the column with the highest profit margin in each region"

    code

    Type: string

    Description

    AI-generated JavaScript filtering code

    - Only built-in utility functions (accessible via _ or R) are allowed

    - Input parameters: data (array), each item contains a __row_index field representing the row number

    - Must return an array of row index and field combinations: Array<{ __row_index: number, field: string }>

    - __row_index represents the original row number; field represents the field to highlight

    - Forbidden to use: eval, Function, asynchronous operations, DOM API, network requests

    Example Highlight the 'sales' field for data items with sales greater than 1000

    const filtered = _.filter(data, item => item.sales > 1000);
    return _.map(filtered, item => ({
    __row_index: item.__row_index,
    field: 'sales'
    }));

    Highlight the data item with the highest profit margin in each region

    const grouped = _.groupBy(data, 'area');
    const maxItems = _.map(grouped, group =>
    _.maxBy(group, item => item.profit / item.sales)
    );
    return _.flatten(
    _.map(maxItems, item => [
    { __row_index: item.__row_index, field: 'product' },
    { __row_index: item.__row_index, field: 'profit' }
    ])
    );

    Highlight data items filtered by multiple conditions

    const filtered = _.filter(data, item => {
    const profitRate = item.profit / item.sales;
    return profitRate > 0.2 && item.sales > 5000;
    });
    return _.flatten(
    _.map(filtered, item => [
    { __row_index: item.__row_index, field: 'product' },
    { __row_index: item.__row_index, field: 'sales' }
    ])
    );

    fallback

    Type: Selector | Selectors | undefined

    Description

    Fallback plan when code execution fails or environment is not supported

    field

    Type: string

    Description

    Dimension field, the ID of a dimension item

    operator

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    op

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    Same as operator

    value

    Type: string | number | (string | number)[]

    Description

    Select data items based on dimension values, supports arrays

    result

    Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined

    Description

    Dynamic filter execution results (runtime field)

    Populated during the prepare() stage, read-only at runtime

    success

    Type: false | true

    data

    Type: T[] | undefined

    error

    Type: string | undefined

    pointVisible

    Type: boolean | undefined

    Description

    Whether the point is visible

    pointSize

    Type: number | undefined

    Description

    Point size

    pointColor

    Type: string | undefined

    Description

    Point element color

    pointColorOpacity

    Type: number | undefined

    Description

    Point element opacity

    pointBorderColor

    Type: string | undefined

    Description

    Point element border color

    pointBorderWidth

    Type: number | undefined

    Description

    Point element border width

    pointBorderStyle

    Type: "solid" | "dashed" | "dotted" | undefined

    Description

    Point element border style

    Example solid

    dashed

    dotted

    annotationPoint

    Type: AnnotationPoint | AnnotationPoint[] | undefined

    Description

    MarkPoint configuration; according to the selected data, defines the annotation points in the chart, including position, format, style, etc.

    selector

    Type: Selector | Selectors | undefined

    Description

    Label filtering, default relationship between selectors is 'Or'

    field

    Type: string

    Description

    Dimension field, the ID of a dimension item

    operator

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    op

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    Same as operator

    value

    Type: string | number | (string | number)[]

    Description

    Select data items based on dimension values, supports arrays

    measureId

    Type: string | undefined

    Description

    Specifies the measure id that the annotation point belongs to. In multi-measure scenarios, it can be combined with selector to uniquely locate the annotation point for the target measure.

    dynamicFilter

    Type: ChartDynamicFilter | undefined

    Description

    Dynamic filter (AI-generated code execution)

    Implement complex data filtering logic via AI-generated JavaScript code

    Key Capabilities:

    - Supports any complex data filtering conditions

    - Use built-in utility functions for data manipulation

    - Secure execution in browser environment (Web Worker sandbox)

    Environment requirements: Only supports browser environment; Node.js environment will use fallback

    Note: selector and dynamicFilter cannot be used simultaneously; dynamicFilter has higher priority

    Chart dynamic filter configuration

    Filter chart markers (bars, points, etc.) via AI-generated JavaScript code

    type

    Type: "row-with-field"

    description

    Type: string | undefined

    Description

    User requirement description (natural language)

    Example "Highlight columns with sales greater than 1000"

    "Highlight the column with the highest profit margin in each region"

    code

    Type: string

    Description

    AI-generated JavaScript filtering code

    - Only built-in utility functions (accessible via _ or R) are allowed

    - Input parameters: data (array), each item contains a __row_index field representing the row number

    - Must return an array of row index and field combinations: Array<{ __row_index: number, field: string }>

    - __row_index represents the original row number; field represents the field to highlight

    - Forbidden to use: eval, Function, asynchronous operations, DOM API, network requests

    Example Highlight the 'sales' field for data items with sales greater than 1000

    const filtered = _.filter(data, item => item.sales > 1000);
    return _.map(filtered, item => ({
    __row_index: item.__row_index,
    field: 'sales'
    }));

    Highlight the data item with the highest profit margin in each region

    const grouped = _.groupBy(data, 'area');
    const maxItems = _.map(grouped, group =>
    _.maxBy(group, item => item.profit / item.sales)
    );
    return _.flatten(
    _.map(maxItems, item => [
    { __row_index: item.__row_index, field: 'product' },
    { __row_index: item.__row_index, field: 'profit' }
    ])
    );

    Highlight data items filtered by multiple conditions

    const filtered = _.filter(data, item => {
    const profitRate = item.profit / item.sales;
    return profitRate > 0.2 && item.sales > 5000;
    });
    return _.flatten(
    _.map(filtered, item => [
    { __row_index: item.__row_index, field: 'product' },
    { __row_index: item.__row_index, field: 'sales' }
    ])
    );

    fallback

    Type: Selector | Selectors | undefined

    Description

    Fallback plan when code execution fails or environment is not supported

    field

    Type: string

    Description

    Dimension field, the ID of a dimension item

    operator

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    op

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    Same as operator

    value

    Type: string | number | (string | number)[]

    Description

    Select data items based on dimension values, supports arrays

    result

    Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined

    Description

    Dynamic filter execution results (runtime field)

    Populated during the prepare() stage, read-only at runtime

    success

    Type: false | true

    data

    Type: T[] | undefined

    error

    Type: string | undefined

    text

    Type: string | string[] | undefined

    Description

    Annotation text

    Example 'Annotation text'

    textColor

    Type: string | undefined

    Description

    Text color

    Example 'red'

    textFontSize

    Type: number | undefined

    Description

    Text font size

    Example 12

    textFontWeight

    Type: number | undefined

    Description

    Text font weight

    Example 400

    textAlign

    Type: "left" | "right" | "center" | undefined

    Description

    Text alignment; generally set to 'right' to ensure the text is displayed on the left of the mark point and within the visible area of the chart.

    Recommended to set to 'right' to ensure the text is on the left of the mark point.

    right: Text is on the left of the mark point, aligned to the mark point by its right edge.

    left: Text is on the right of the mark point, aligned to the mark point by its left edge.

    center: Text is centered on the mark point.

    Example 'right' Text is on the left of the mark point

    textBaseline

    Type: "top" | "bottom" | "middle" | undefined

    Description

    Text vertical alignment; generally set to 'top' to ensure the text is displayed below the mark point and within the visible area.

    Recommended to set to 'top' to ensure the text is displayed completely within the visible area.

    top: Text is below the mark point, its top edge aligned with the mark point.

    middle: Text is vertically centered on the mark point.

    bottom: Text is above the mark point, its bottom edge aligned with the mark point.

    Example 'top' Text is below the mark point

    textBackgroundVisible

    Type: boolean | undefined

    Description

    Background visible

    Example true

    textBackgroundColor

    Type: string | undefined

    Description

    Background color

    Example 'red'

    textBackgroundBorderColor

    Type: string | undefined

    Description

    Background border color

    Example 'red'

    textBackgroundBorderWidth

    Type: number | undefined

    Description

    Background border width

    Example 2

    textBackgroundBorderRadius

    Type: number | undefined

    Description

    Background border radius

    Example 4

    textBackgroundPadding

    Type: number | undefined

    Description

    Background padding

    Example 4

    offsetY

    Type: number | undefined

    Description

    Vertical offset distance of the annotation point. When the point is above the chart (high values), a positive value is recommended; when below (low values), a negative value is recommended.

    A negative value offsets it upward (e.g., -10 pixels).

    A positive value offsets it downward (e.g., 10 pixels).

    Example offsetY: 5, MarkPoint offset down by 5 pixels

    offsetX

    Type: number | undefined

    Description

    Horizontal offset distance of the annotation point. When the point is at the left (category axis start), a positive value is recommended; when at the right (category axis end), a negative value is recommended.

    A negative value offsets it to the left (e.g., -10 pixels).

    A positive value offsets it to the right (e.g., 10 pixels).

    Example offsetX: 5, MarkPoint offset right by 5 pixels

    annotationVerticalLine

    Type: AnnotationVerticalLine | AnnotationVerticalLine[] | undefined

    Description

    Dimension value mark line, displayed vertically; allows setting the position and style of the mark line.

    xValue

    Type: string | number | (string | number)[] | undefined

    Description

    Fixed x-value for vertical mark lines; if the category axis is on the x-direction, you can enter a dimension value; if it's a numeric axis, enter a specific number.

    dynamicFilter

    Type: ValueDynamicFilter | undefined

    Description

    Dynamic filter (AI-generated code execution)

    Calculate mark line value via AI-generated JavaScript code.

    Suitable for cases where mark line positions need to be determined dynamically based on data, such as mean, maximum, quantile, business lines, etc.

    Only supports browser environment (requires Web Worker).

    type

    Type: "value"

    description

    Type: string | undefined

    Description

    User requirement description (natural language)

    Example "Highlight columns with sales greater than 1000"

    "Highlight the column with the highest profit margin in each region"

    code

    Type: string

    Description

    AI-generated JavaScript filtering code

    - Only built-in utility functions (accessible via _ or R) are allowed

    - Input parameters: data (array)

    - Must return a single numeric or string value: number | string

    - Applicable scenario: Dynamic values needed for mark lines (horizontal lines, vertical lines)

    - Forbidden to use: eval, Function, asynchronous operations, DOM API, network requests

    Example Get the highest sales value as mark line value

    const maxSales = _.maxBy(data, 'sales')?.sales;
    return maxSales || 0;

    Calculate average value for mark line

    const avgSales = _.meanBy(data, 'sales');
    return _.round(avgSales, 2);

    Get quantile for mark line

    const sorted = _.sortBy(data, 'sales');
    const index = Math.floor(sorted.length * 0.75);
    return sorted[index]?.sales || 0;

    Calculate Goal value based on conditions

    const currentYearTotal = _.sumBy(
    _.filter(data, item => item.year === 2024),
    'sales'
    );
    return currentYearTotal;

    fallback

    Type: string | number | undefined

    Description

    Fallback plan when code execution fails or environment is not supported

    result

    Type: { success: boolean; data?: number | string; } | undefined

    Description

    Dynamic filter execution results (runtime field)

    Populated during the prepare() stage, read-only at runtime

    success

    Type: false | true

    data

    Type: string | number | undefined

    text

    Type: string | string[] | undefined

    Description

    Annotation text

    Example 'Annotation text'

    textPosition

    Type: "outsideStart" | "outsideEnd" | "outsideMiddle" | "insideStart" | "insideMiddle" | "insideEnd" | undefined

    Description

    Text position, MarkLine's label position (relative to the line).

    Example 'outsideEnd'

    textColor

    Type: string | undefined

    Description

    Text color

    Example 'red'

    textFontSize

    Type: number | undefined

    Description

    Text font size

    Example 12

    textFontWeight

    Type: number | undefined

    Description

    Text font weight

    Example 400

    textAlign

    Type: "left" | "right" | "center" | undefined

    Description

    Text alignment; generally set to 'right' to ensure the text is displayed on the left of the mark point and within the visible area of the chart.

    Recommended to set to 'right' to ensure the text is on the left of the mark point.

    right: Text is on the left of the mark point, aligned to the mark point by its right edge.

    left: Text is on the right of the mark point, aligned to the mark point by its left edge.

    center: Text is centered on the mark point.

    Example 'right' Text is on the left of the mark point

    textBaseline

    Type: "top" | "bottom" | "middle" | undefined

    Description

    Text vertical alignment; generally set to 'top' to ensure the text is displayed below the mark point and within the visible area.

    Recommended to set to 'top' to ensure the text is displayed completely within the visible area.

    top: Text is below the mark point, its top edge aligned with the mark point.

    middle: Text is vertically centered on the mark point.

    bottom: Text is above the mark point, its bottom edge aligned with the mark point.

    Example 'top' Text is below the mark point

    lineVisible

    Type: boolean | undefined

    Description

    Line visible

    Example true

    lineColor

    Type: string | undefined

    Description

    Line color

    Example 'red'

    lineWidth

    Type: number | undefined

    Description

    Line width

    Example 2

    lineStyle

    Type: "solid" | "dashed" | "dotted" | undefined

    Description

    Line segment style

    Example lineStyle: 'solid'

    textBackgroundVisible

    Type: boolean | undefined

    Description

    Background visible

    Example true

    textBackgroundColor

    Type: string | undefined

    Description

    Background color

    Example 'red'

    textBackgroundBorderColor

    Type: string | undefined

    Description

    Background border color

    Example 'red'

    textBackgroundBorderWidth

    Type: number | undefined

    Description

    Background border width

    Example 2

    textBackgroundBorderRadius

    Type: number | undefined

    Description

    Background border radius

    Example 4

    textBackgroundPadding

    Type: number | undefined

    Description

    Background padding

    Example 4

    annotationHorizontalLine

    Type: AnnotationHorizontalLine | AnnotationHorizontalLine[] | undefined

    Description

    Numeric mark line (including mean, maximum, minimum, etc.), displayed horizontally. Allows setting the position and style of the mark line. Use this configuration if you need to draw mark lines corresponding to specific values like the mean.

    yValue

    Type: string | number | (string | number)[] | undefined

    Description

    Fixed y-value for horizontal mark lines; if the category axis is on the y-direction, you can enter a dimension value; if it's a numeric axis, enter a specific number.

    dynamicFilter

    Type: ValueDynamicFilter | undefined

    Description

    Dynamic filter (AI-generated code execution)

    Calculate mark line value via AI-generated JavaScript code.

    Suitable for cases where mark line positions need to be determined dynamically based on data, such as mean, maximum, quantile, business lines, etc.

    Only supports browser environment (requires Web Worker).

    type

    Type: "value"

    description

    Type: string | undefined

    Description

    User requirement description (natural language)

    Example "Highlight columns with sales greater than 1000"

    "Highlight the column with the highest profit margin in each region"

    code

    Type: string

    Description

    AI-generated JavaScript filtering code

    - Only built-in utility functions (accessible via _ or R) are allowed

    - Input parameters: data (array)

    - Must return a single numeric or string value: number | string

    - Applicable scenario: Dynamic values needed for mark lines (horizontal lines, vertical lines)

    - Forbidden to use: eval, Function, asynchronous operations, DOM API, network requests

    Example Get the highest sales value as mark line value

    const maxSales = _.maxBy(data, 'sales')?.sales;
    return maxSales || 0;

    Calculate average value for mark line

    const avgSales = _.meanBy(data, 'sales');
    return _.round(avgSales, 2);

    Get quantile for mark line

    const sorted = _.sortBy(data, 'sales');
    const index = Math.floor(sorted.length * 0.75);
    return sorted[index]?.sales || 0;

    Calculate Goal value based on conditions

    const currentYearTotal = _.sumBy(
    _.filter(data, item => item.year === 2024),
    'sales'
    );
    return currentYearTotal;

    fallback

    Type: string | number | undefined

    Description

    Fallback plan when code execution fails or environment is not supported

    result

    Type: { success: boolean; data?: number | string; } | undefined

    Description

    Dynamic filter execution results (runtime field)

    Populated during the prepare() stage, read-only at runtime

    success

    Type: false | true

    data

    Type: string | number | undefined

    text

    Type: string | string[] | undefined

    Description

    Annotation text

    Example 'Annotation text'

    textPosition

    Type: "outsideStart" | "outsideEnd" | "outsideMiddle" | "insideStart" | "insideMiddle" | "insideEnd" | undefined

    Description

    Text position, MarkLine's label position (relative to the line).

    Example 'outsideEnd'

    textColor

    Type: string | undefined

    Description

    Text color

    Example 'red'

    textFontSize

    Type: number | undefined

    Description

    Text font size

    Example 12

    textFontWeight

    Type: number | undefined

    Description

    Text font weight

    Example 400

    textAlign

    Type: "left" | "right" | "center" | undefined

    Description

    Text alignment; generally set to 'right' to ensure the text is displayed on the left of the mark point and within the visible area of the chart.

    Recommended to set to 'right' to ensure the text is on the left of the mark point.

    right: Text is on the left of the mark point, aligned to the mark point by its right edge.

    left: Text is on the right of the mark point, aligned to the mark point by its left edge.

    center: Text is centered on the mark point.

    Example 'right' Text is on the left of the mark point

    textBaseline

    Type: "top" | "bottom" | "middle" | undefined

    Description

    Text vertical alignment; generally set to 'top' to ensure the text is displayed below the mark point and within the visible area.

    Recommended to set to 'top' to ensure the text is displayed completely within the visible area.

    top: Text is below the mark point, its top edge aligned with the mark point.

    middle: Text is vertically centered on the mark point.

    bottom: Text is above the mark point, its bottom edge aligned with the mark point.

    Example 'top' Text is below the mark point

    textBackgroundVisible

    Type: boolean | undefined

    Description

    Background visible

    Example true

    textBackgroundColor

    Type: string | undefined

    Description

    Background color

    Example 'red'

    textBackgroundBorderColor

    Type: string | undefined

    Description

    Background border color

    Example 'red'

    textBackgroundBorderWidth

    Type: number | undefined

    Description

    Background border width

    Example 2

    textBackgroundBorderRadius

    Type: number | undefined

    Description

    Background border radius

    Example 4

    textBackgroundPadding

    Type: number | undefined

    Description

    Background padding

    Example 4

    lineVisible

    Type: boolean | undefined

    Description

    Line visible

    Example true

    lineColor

    Type: string | undefined

    Description

    Line color

    Example 'red'

    lineWidth

    Type: number | undefined

    Description

    Line width

    Example 2

    lineStyle

    Type: "solid" | "dashed" | "dotted" | undefined

    Description

    Line segment style

    Example lineStyle: 'solid'

    splitLine

    Type: boolean | { positiveColor?: string; negativeColor?: string; } | undefined

    Description

    Whether to enable the function to split the main line into two segments.

    positiveColor

    Type: string | undefined

    Description

    Main color for the portion greater than the mark value

    negativeColor

    Type: string | undefined

    Description

    Main color for parts less than the mark value

    annotationArea

    Type: AnnotationArea | AnnotationArea[] | undefined

    Description

    Mark area

    Mark area configuration, according to the selected data, defines the annotation areas in the chart, including position and style.

    selector

    Type: AreaSelector | AreaSelectors | undefined

    Description

    Depends on the selected data for marking.

    field

    Type: string

    Description

    Dimension field, the ID of a dimension item

    operator

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    op

    Type: "in" | "not in" | undefined

    Description

    Operator

    - in: Select data items where the dimension field value is in 'value'

    - not in: Select data items where the dimension field value is not in 'value'

    Same as operator

    value

    Type: string | number | (string | number)[]

    Description

    Select data items based on dimension values, supports arrays

    text

    Type: string | string[] | undefined

    Description

    Annotation text

    Example 'Annotation text'

    textPosition

    Type: "left" | "top" | "topLeft" | "topRight" | "right" | "bottom" | "bottomLeft" | "bottomRight" | undefined

    Description

    Text position

    Example 'top'

    textColor

    Type: string | undefined

    Description

    Text color

    Example 'red'

    textFontSize

    Type: number | undefined

    Description

    Text font size

    Example 12

    textFontWeight

    Type: number | undefined

    Description

    Text font weight

    Example 400

    textAlign

    Type: "left" | "right" | "center" | undefined

    Description

    Text alignment; generally set to 'right' to ensure the text is displayed on the left of the mark point and within the visible area of the chart.

    Recommended to set to 'right' to ensure the text is on the left of the mark point.

    right: Text is on the left of the mark point, aligned to the mark point by its right edge.

    left: Text is on the right of the mark point, aligned to the mark point by its left edge.

    center: Text is centered on the mark point.

    Example 'right' Text is on the left of the mark point

    textBaseline

    Type: "top" | "bottom" | "middle" | undefined

    Description

    Text vertical alignment; generally set to 'top' to ensure the text is displayed below the mark point and within the visible area.

    Recommended to set to 'top' to ensure the text is displayed completely within the visible area.

    top: Text is below the mark point, its top edge aligned with the mark point.

    middle: Text is vertically centered on the mark point.

    bottom: Text is above the mark point, its bottom edge aligned with the mark point.

    Example 'top' Text is below the mark point

    textBackgroundVisible

    Type: boolean | undefined

    Description

    Background visible

    Example true

    textBackgroundColor

    Type: string | undefined

    Description

    Background color

    Example 'red'

    textBackgroundBorderColor

    Type: string | undefined

    Description

    Background border color

    Example 'red'

    textBackgroundBorderWidth

    Type: number | undefined

    Description

    Background border width

    Example 2

    textBackgroundBorderRadius

    Type: number | undefined

    Description

    Background border radius

    Example 4

    textBackgroundPadding

    Type: number | undefined

    Description

    Background padding

    Example 4

    areaColor

    Type: string | undefined

    Description

    Mark area region color

    Example 'red'

    areaColorOpacity

    Type: number | undefined

    Description

    Mark area region color opacity

    Example 0.5

    areaBorderColor

    Type: string | undefined

    Description

    Mark area region border color

    Example 'red'

    areaBorderWidth

    Type: number | undefined

    Description

    Mark area region border width

    Example 2

    areaBorderRadius

    Type: number | undefined

    Description

    Mark area region border radius

    Example 4

    areaLineDash

    Type: number[] | undefined

    Description

    Line type for the mark area region border

    Example [2, 2]

    outerPadding

    Type: number | undefined

    Description

    Margin for the mark area region

    Example 0

    locale

    Type: "zh-CN" | "en-US" | "ja-JP" | "de-DE" | "id-ID" | "fr-FR" | "ko-KR" | "vi-VN" | undefined

    Description

    Language

    Chart language configuration; supports 'zh-CN' and 'en-US' language; alternatively, call the intl.setLocale('zh-CN') method to set the language.