Line

Recommended

- Recommended field configuration: 1 measure, 2 dimensions

- Supports data reshaping: at least 1 measure, 0 dimensions

Encoding Mapping

The line chart supports the following visual channels:

x : x-axis channel, supports multiple dimensions, maps dimension values to the x-axis

y : y-axis channel, supports multiple measures, maps measure values to the y-axis

color : color channel, supports multiple dimensions or one measure; dimension colors distinguish data series, and measure colors linearly map measure values to graphical colors

tooltip: tooltip channel, supports multiple dimensions and multiple measures, displayed when hovering over a data point

label : label channel, supports multiple dimensions and multiple measures, displays data labels on data points

Description

Line chart, suitable for showing trends over time or ordered categories by connecting data points with line segments.

Applicable scenarios:

- Show trends in time-series data

- Compare trends across multiple data series

- Analyze patterns of data growth or decline

Warning

Data requirements:

- At least 1 numeric field (measure)

- The first dimension is placed on the X-axis; remaining dimensions are merged with measure names when multiple measures exist and displayed as legend items

- All measures are automatically merged into one measure

Features enabled by default:

- Legend, axes, data point markers, tooltips, and trend lines are enabled by default

chartType

Type: "line"

Description

Line chart, suitable for showing trends over time or ordered categories

Example 'line'

dataset

Type: Record[]

Description

Dataset

A TidyData-compliant, pre-aggregated dataset defining the chart's data source and structure. Users do not need to manually process input data — VSeed's powerful Data Reshape capability handles it automatically. Area Chart data is ultimately reshaped to 2 dimensions and 1 measure.

Example [{month:'Jan', value:100}, {month:'Feb', value:150}, {month:'Mar', value:120}]

dimensions

Type: ColumnDimension[] | undefined

Description

Dimensions

The first dimension is mapped to the X-axis; the remaining dimensions are merged with measure names (when multiple measures exist) and displayed as legend items.

Example [{ id: 'month', alias: 'Month' }, { id: 'year', alias: 'Year' }]

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: "xAxis" | "color" | "detail" | "tooltip" | "label" | "row" | "column" | undefined

Description

Channel to which the dimension is mapped

- xAxis: supports mapping multiple dimensions to the x-axis

- 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

measures

Type: ColumnMeasure[] | undefined

Description

Measures

Area Chart measures are automatically merged into one measure, mapped to the Y-axis. Measure names are merged with the remaining dimensions and displayed as legend items.

Example [{id: 'value', alias: 'Value'}]

id

Type: string

Description

Measure ID, must be unique

alias

Type: string | undefined

Description

Measure alias, duplicates allowed; when not set, alias defaults to id

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: "color" | "detail" | "tooltip" | "label" | "yAxis" | undefined

Description

Channel to which the measure is mapped

- yAxis: measure mapped to the y-axis

- detail: measure mapped to the detail channel

- color: measure mapped to the color channel

- label: measure mapped to the label channel

- tooltip: measure mapped to the tooltip channel

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

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)')

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

Whether label values are automatically formatted; when autoFormat is true, numFormat configuration is ignored

numFormat

Type: NumFormat | undefined

Description

Label value format configuration; merged with the format in measure, where measure's format has higher priority. numFormat priority is lower than autoFormat

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

Legend 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

regionPadding

Type: RegionPadding | undefined

Description

Chart region padding

Maps to VChart region[0].padding, used to reserve space for annotations, labels, and other elements that extend outside the chart region.

top

Type: number | undefined

Type: number | undefined

bottom

Type: number | undefined

left

Type: number | undefined

tooltip

Type: Tooltip | undefined

Description

tooltips

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

enable

Type: false | true

Description

Whether the tooltip function 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 to enable brush selection

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 unselected data points, range 0-1

stroke

Type: string | undefined

Description

Stroke color

lineWidth

Type: number | undefined

Description

Stroke width

animation

Type: LineAreaAnimation | undefined

Description

Animation configuration

Chart animation configuration, with available effects constrained by chart type.

enable

Type: boolean | undefined

Description

Whether to enable line/area chart animation

params

Type: LineAreaAnimationParams | undefined

Description

Line/area chart animation parameters

appear

Type: LineAreaAppearAnimation | undefined

Description

Line/area chart appear animation configuration

effects

Type: ("load" | "growth")[] | undefined

Description

Line/area chart appear effects, supporting load and growth animations

enable

Type: boolean | undefined

Description

Whether to enable the current animation stage

ease

Type: string | undefined

Description

Animation easing function

duration

Type: number | undefined

Description

Animation duration, in milliseconds

color

Type: string | undefined

Description

Animation highlight or atmosphere color

update

Type: LineAreaUpdateAnimation | undefined

Description

Line/area chart update animation configuration

effects

Type: "growth"[] | undefined

Description

Line/area chart update effects, supporting growth animation

enable

Type: boolean | undefined

Description

Whether to enable the current animation stage

ease

Type: string | undefined

Description

Animation easing function

duration

Type: number | undefined

Description

Animation duration, in milliseconds

color

Type: string | undefined

Description

Animation highlight or atmosphere color

loop

Type: LineAreaAnimationLoop | undefined

Description

Line/area chart loop animation configuration

enable

Type: boolean | undefined

Description

Whether to enable loop animation

interval

Type: number | undefined

Description

Loop animation interval, in milliseconds

loop

Type: LineAreaLoopAnimation | undefined

Description

Line/area chart loop animation configuration

effects

Type: LineAreaLoopEffect[] | undefined

Description

Line/area chart loop effects

enable

Type: boolean | undefined

Description

Whether to enable the current animation stage

ease

Type: string | undefined

Description

Animation easing function

duration

Type: number | undefined

Description

Animation duration, in milliseconds

color

Type: string | undefined

Description

Animation highlight or atmosphere color

atmosphere

Type: PointAtmosphereConfig | undefined

Description

Line/area chart atmosphere animation configuration

ease

Type: string | undefined

Description

Atmosphere animation easing function

color

Type: string | undefined

Description

Atmosphere animation color

effect

Type: PointAtmosphereEffect | undefined

Description

Atmosphere animation effect, supporting ripple, fade, and breath effects

xAxis

Type: XBandAxis | undefined

Description

X-axis

Category axis, X-axis configuration, used to define the X-axis including position, format, style, etc.

visible

Type: boolean | undefined

Description

Whether the axis is visible

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.

labelAutoHide

Type: boolean | undefined

Description

Axis label auto-hide; if two labels overlap, the overlapping label is hidden. Only effective for category axes.

labelAutoHideGap

Type: number | undefined

Description

Axis label auto-hide interval; if the interval between two labels is less than autoHideGap, the overlapping label is hidden. Only effective for category axes.

autoHide enabled: uses autoHideGap

autoHide disabled: uses sampling with minGap

labelAutoRotate

Type: boolean | undefined

Description

Axis label auto-rotate; if the label width exceeds the axis length, it rotates automatically. Only effective for category axes.

labelAutoRotateAngleRange

Type: number[] | undefined

Description

Axis label auto-rotate angle range; the range of rotation angles if auto-rotate is enabled. Only effective for category axes.

labelAutoLimit

Type: boolean | undefined

Description

Axis label auto-limit; if the label exceeds the axis length, it is truncated with an ellipsis and shown fully on hover. Only effective for category axes.

labelAutoLimitLength

Type: number | undefined

Description

Axis label auto-limit maximum length; if the label text length exceeds this value, it is truncated with an ellipsis and shown fully on hover. Only effective for category axes.

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 axis line is visible

lineColor

Type: string | undefined

Description

Axis line color

lineWidth

Type: number | undefined

Description

Axis line width

tick

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

Description

X-axis tick

visible

Type: boolean | undefined

Description

Whether the tick 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 title 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

Whether to automatically format axis tick labels; only effective for numeric axes. If autoFormat is true, numFormat configuration is ignored.

numFormat

Type: NumFormat | undefined

Description

Numeric axis number formatting; only effective for numeric axes and has lower priority than autoFormat.

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

Axis tick label

visible

Type: boolean | undefined

Description

Whether the label is visible

labelColor

Type: string | undefined

Description

LabelColor

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

Axis line

visible

Type: boolean | undefined

Description

Whether the axis line is visible

lineColor

Type: string | undefined

Description

Axis line color

lineWidth

Type: number | undefined

Description

Axis line width

tick

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

Description

Axis tick

visible

Type: boolean | undefined

Description

Whether the tick 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

Axis title

visible

Type: boolean | undefined

Description

Whether the title 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

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 dash type

animation

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

Description

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 to display crosshairs

lineColor

Type: string | undefined

Description

Crosshair line color

labelColor

Type: string | undefined

Description

Crosshair label color

labelVisible

Type: boolean | undefined

Description

Whether to display the crosshair label

labelBackgroundColor

Type: string | undefined

Description

Crosshair label background color

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

sortLegend

Type: SortLegend | undefined

Description

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

Legend sort configuration, supports sorting by dimensions or measures, as well as custom sort order; the sort array follows top-to-bottom or left-to-right order.

Example sortLegend: { orderBy: 'profit', order: 'asc', } sortLegend: { 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 legend; ascending from left-to-right or top-to-bottom, descending from right-to-left or bottom-to-top.

theme

Type: Theme | undefined

Description

Chart theme; theme is a lower-priority configuration that includes common styles shared across all chart types, as well as chart-specific configurations shared across a single category.

Built-in light and dark themes; users can define custom themes via the Builder.

Theme

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

Example 'dark'

'light'

'customThemeName'

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 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.

Suitable for Top N, statistical analysis, complex conditions, and other scenarios that are hard to express with static selectors.

Core capabilities:

- Supports any complex data filtering conditions

- Uses built-in utility functions for data manipulation

- Safely executed in the 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.

Implementation of filtering for chart markers (columns, 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 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

lineStyle

Type: LineStyle | LineStyle[] | undefined

Description

Line element style configuration, used to define the style for chart line elements, including colors, opacity, curves, 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 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.

Suitable for Top N, statistical analysis, complex conditions, and other scenarios that are hard to express with static selectors.

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 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

lineVisible

Type: boolean | undefined

Description

Whether the line segment is visible

lineSmooth

Type: boolean | undefined

Description

Whether the line segment is smooth

lineColor

Type: string | undefined

Description

Line segment color

lineColorOpacity

Type: number | undefined

Description

Line segment opacity

lineWidth

Type: number | undefined

Description

Line segment width

lineStyle

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

Description

Line segment style

Example lineStyle: 'solid'

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

MarkPoint selector, used to select data points.

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 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.

Suitable for Top N, statistical analysis, complex conditions, and other scenarios that are hard to express with static selectors.

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 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 "Get the highest sales value as mark line reference"

"Calculate average sales for mark line"

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 no need to set.

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

right: Text is on the left of the reference line, its right edge aligned with the (vertical) mark line.

left: Text is on the right of the reference line, its left edge aligned with the (vertical) mark line.

center: Text is centered on the reference line.

Example 'right'

textBaseline

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

Description

Text vertical alignment; generally no need to set.

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

top: Text is below the reference line, aligned to the endpoint of the (vertical) mark line by its top edge.

middle: Text is centered horizontally relative to the endpoint of the (vertical) mark line.

bottom: Text is above the reference line, aligned to the endpoint of the (vertical) mark line by its bottom edge.

Example 'top'

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 style

Example '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 "Get the highest sales value as mark line reference"

"Calculate average sales for mark line"

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 no need to set.

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

right: Text is on the left of the reference line, its right edge aligned (horizontally) with the endpoint of the mark line.

left: Text is on the right of the reference line, its left edge aligned (horizontally) with the endpoint of the mark line.

center: Text is centered (horizontally) relative to the endpoint of the mark line.

Example 'right'

textBaseline

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

Description

Text vertical alignment; generally no need to set.

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

top: Text is below the reference line, its top edge aligned (horizontally) with the mark line.

middle: Text is centered (horizontally) relative to the mark line.

bottom: Text is above the reference line, its bottom edge aligned (horizontally) with the mark line.

Example 'top'

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 style

Example '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 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 in the middle of the mark area and within the visible range.

Recommended to set to 'center' to ensure the text is in the center of the mark area.

right: Text is on the left of the mark area, its right edge aligned with the area.

left: Text is on the right of the mark area, its left edge aligned with the area.

center: Text is centered within the mark area.

Example 'center' Text is in the middle of the mark area

textBaseline

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

Description

Text vertical alignment; generally set to 'top' to ensure the text is at the bottom of the mark area and within the visible range.

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

top: Text is at the bottom of the mark area, its top edge aligned with the area.

middle: Text is vertically centered within the mark area.

bottom: Text is at the top of the mark area, its bottom edge aligned with the area.

Example 'top' Text is at the bottom of the mark area

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

annotationDifferenceLine

Type: AnnotationDifferenceLine | AnnotationDifferenceLine[] | undefined

Description

Difference annotation line

Draws a difference annotation line from two selected data points and automatically calculates the difference text.

start

Type: DifferenceAnchor

Description

Start anchor for the difference annotation line.

Difference annotation anchor configuration, used to select the data bound to the start or end point.

selector

Type: DifferenceSelector | DifferenceSelector[]

Description

Anchor selector, which must ultimately locate a logical anchor.

Example { year: '1930', type: 'Autocracies' }

[{ field: 'year', operator: 'in', value: ['1930'] }, { field: 'type', operator: 'in', value: ['Autocracies'] }]

field

Type: string

Description

Dimension field, the id of one item in dimensions

operator

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

Description

Operator

- in: select data items whose dimension field value is in value

- not in: select data items whose dimension field value is not in value

op

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

Description

Operator

- in: select data items whose dimension field value is in value

- not in: select data items whose dimension field value is not in value

Same as operator

value

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

Description

Value of the dimension field used to select data items; arrays are supported

end

Type: DifferenceAnchor

Description

End anchor for the difference annotation line.

Difference annotation anchor configuration, used to select the data bound to the start or end point.

selector

Type: DifferenceSelector | DifferenceSelector[]

Description

Anchor selector, which must ultimately locate a logical anchor.

Example { year: '1930', type: 'Autocracies' }

[{ field: 'year', operator: 'in', value: ['1930'] }, { field: 'type', operator: 'in', value: ['Autocracies'] }]

field

Type: string

Description

Dimension field, the id of one item in dimensions

operator

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

Description

Operator

- in: select data items whose dimension field value is in value

- not in: select data items whose dimension field value is not in value

op

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

Description

Operator

- in: select data items whose dimension field value is in value

- not in: select data items whose dimension field value is not in value

Same as operator

value

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

Description

Value of the dimension field used to select data items; arrays are supported

differenceType

Type: "percent" | "absolute" | undefined

Description

Difference value type.

  • absolute: displays the absolute difference, calculated as end - start

  • percent: displays the percentage difference, calculated as (end - start) / start :::

textFontSize

Type: number | undefined

:::note{title=Description} Text font size.

textColor

Type: string | undefined

Description

Text color.

textBackgroundColor

Type: string | undefined

Description

Text background color.

lineColor

Type: string | undefined

Description

Line color.

lineStyle

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

Description

Line style.

dimensionLinkage

Type: DimensionLinkage | undefined

Description

Whether to enable the dimension linkage function when the chart has perspective enabled or measures are combined.

When hovering over certain dimension value(s), it highlights data with the same dimension values in other sub-charts.

Perspective chart dimension linkage configuration

enable

Type: false | true

Description

Whether to enable perspective chart dimension linkage

showTooltip

Type: boolean | undefined

Description

Whether to display tooltips for all dimension sub-charts

showLabel

Type: boolean | undefined

Description

Whether to display crosshair labels

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.