DualAxis
- Recommended field configuration: 2 measures, 2 dimensions
- Supports data reshaping: at least 1 measure, 0 dimensions
Dual-axis charts support the following visual channels:
xAxis : x-axis channel, supports multiple dimensions, mapped to the x-axis by dimension value
primaryYAxis : primary y-axis channel, supports multiple measures, mapped to the primary axis
secondaryYAxis : secondary y-axis channel, supports multiple measures, mapped to the secondary axis
detail : detail channel, supports multiple dimensions, used when showing more granular data under the same color series
color : color channel, supports multiple dimensions or one measure; dimension colors distinguish different 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
Dual-axis chart, suitable for comparing two measures with different magnitudes or units, including a primary axis and a secondary axis
Applicable scenarios:
- Comparative analysis of measures with different magnitudes
- Trend comparison of correlated measures
- Compound measures that need to show values and growth rates at the same time
- Supports combinations of different chart types, such as line chart + bar chart / line chart + area chart / area chart + bar chart
Data requirements:
- At least 1 measure field
- Supports measure groups. The first measure group is placed on the primary left axis, and the second measure group is placed on the secondary right axis
- The first dimension will be placed on the X-axis; the remaining dimensions will be merged with measure names (when multiple measures exist) and displayed as legend items.
- The two measure groups can be mapped to the left and right Y-axes respectively, and all measures within one measure group are automatically merged into a single measure
Features enabled by default:
- Axes, legend, data labels, and tooltips are enabled by default
chartType
Type: "dualAxis"
Dual-axis chart, a composite chart showing comparisons between two measures with different magnitudes.
Example 'dualAxis'
dataset
Type: Record[]
An aggregated dataset conforming to the TidyData specification, used to define the chart's data source and structure. User-provided datasets do not require preprocessing. VSeed's powerful Data Reshape capability performs the reshape automatically, and column chart data is ultimately converted into 2 dimensions and 1 measure.
Example [{category:'A', value:100}, {category:'B', value:200}]
dimensions
Type: ColumnDimension[] | undefined
The first dimension of the column chart is mapped to the X-axis; remaining dimensions are merged with measure names when multiple measures exist, then displayed as legend items.
Example [{id: "category", alias: "Category"}]
id
Type: string
Field ID corresponding to the dimension
alias
Type: string | undefined
Dimension alias
timeFormat
Type: TimeFormat | undefined
Dimension date format configuration
type
Type: "year" | "quarter" | "month" | "week" | "day" | "hour" | "minute" | "second"
Time granularity, determines the date display precision
encoding
Type: "xAxis" | "color" | "detail" | "tooltip" | "label" | "row" | "column" | undefined
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: DualAxisMeasure[] | undefined
Dual-axis chart measures.
For measures mapped to primaryYAxis and secondaryYAxis in encoding, you can set the parentId property to group measures. Measures in different groups are displayed in different subcharts. You can also set the chartType property to specify the chart type for different measure groups.
Example [{ id: 'value', encoding: 'primaryYAxis' }, { id: 'growth', encoding: 'secondaryYAxis' }]
id
Type: string
Measure ID, must be unique
alias
Type: string | undefined
Measure alias, duplicates allowed; when not set, alias defaults to id
autoFormat
Type: boolean | undefined
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
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
Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation
ratio
Type: number | undefined
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
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
Thousands separator for number formatting
suffix
Type: string | undefined
Number format suffix
prefix
Type: string | undefined
Number format prefix
fractionDigits
Type: number | undefined
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
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
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
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
Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation
ratio
Type: number | undefined
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
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
Thousands separator for number formatting
suffix
Type: string | undefined
Number format suffix
prefix
Type: string | undefined
Number format prefix
fractionDigits
Type: number | undefined
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
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
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
Rounding mode for number formatting, using the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingMode
encoding
Type: "color" | "tooltip" | "label" | "primaryYAxis" | "secondaryYAxis" | undefined
Channel to which the measure is mapped:
Rounding mode for number formatting, using the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingMode
Channel to which the measure is mapped
-
color: Measure mapped to the color channel.
-
label: Measure mapped to the label channel.
- color: measure mapped to the color channel
parentId
Type: string | undefined
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
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
chartType
Type: "area" | "column" | "areaPercent" | "columnParallel" | "columnPercent" | "line" | "scatter" | undefined
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
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
-
column: Bar (Column) Chart
-
columnParallel: Parallel Column Chart
-
columnPercent: Percent Column Chart
-
area: Area Chart
-
areaPercent: Percent Area Chart
-
scatter: Scatter Chart
page
Type: Page | undefined
Pagination configuration, used to specify the field name for pagination, which must be a dimension
field
Type: string
Pagination field; specifies the field name for pagination, must be a dimension
currentValue
Type: string
Current pagination value; specifies the value used to determine the current page
Example '2023-01-01'
alignTicks
Type: boolean | boolean[] | undefined
Current pagination value; specifies the value used to determine the current page
Example {"chartType":"dualAxis","dataset":[{"date":"2019","profit":10,"sales":100},{"date":"2020","profit":30,"sales":200},{"date":"2021","profit":30,"sales":300},{"date":"2022","profit":50,"sales":500}],"alignTicks":[false,true],"dualMeasures":[{"primaryMeasures":[{"id":"profit"}],"secondaryMeasures":[{"id":"sales"}]},{"primaryMeasures":[{"id":"profit"}],"secondaryMeasures":[{"id":"sales"}]}]}
primaryYAxis
Type: YLinearAxis | YLinearAxis[] | undefined
Primary Y-axis configuration for the dual-axis chart, used to define the primary axis, including its position, style, etc. When multiple measure groups exist, primaryYAxis can be an array where each entry corresponds to a primary Y-axis.
visible
Type: boolean | undefined
Whether the axis is visible
min
Type: number | undefined
The minimum value of the axis; has higher priority than 'nice' and 'zero'
max
Type: number | boolean | undefined
The maximum value of the axis; has higher priority than 'nice' and 'zero'. If set to true, the maximum value is automatically calculated based on the data range.
log
Type: boolean | undefined
Whether to use a logarithmic axis; only effective for numeric axes
logBase
Type: number | undefined
The base of the logarithmic axis; only effective for numeric axes
nice
Type: boolean | undefined
Whether to automatically adjust the axis scale interval to make the labels more readable; this configuration is ignored when min and max are specified. Only effective for numeric axes.
inverse
Type: boolean | undefined
Whether the axis is displayed in reverse; only effective for numeric axes
zero
Type: boolean | undefined
Whether to force the display of the zero value on the axis; this configuration is ignored when min and max are specified. Only effective for numeric axes.
autoFormat
Type: boolean | undefined
Whether to automatically format labels for the numeric axis; when autoFormat is true, the numFormat configuration is ignored. Only effective for numeric axes.
numFormat
Type: NumFormat | undefined
Numeric axis number formatting; only effective for numeric axes, with lower priority than autoFormat
type
Type: "number" | "percent" | "permille" | "scientific" | undefined
Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation
ratio
Type: number | undefined
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
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
Thousands separator for number formatting
suffix
Type: string | undefined
Number format suffix
prefix
Type: string | undefined
Number format prefix
fractionDigits
Type: number | undefined
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
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
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
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
X-axis tick label
visible
Type: boolean | undefined
Whether the label is visible
labelColor
Type: string | undefined
Label color
labelFontSize
Type: number | undefined
Label font size
labelFontWeight
Type: number | undefined
Label font weight
labelAngle
Type: number | undefined
Label rotation angle
line
Type: { visible?: boolean; lineColor?: string; lineWidth?: number; } | undefined
X-axis line
visible
Type: boolean | undefined
Whether the axis line is visible
lineColor
Type: string | undefined
Axis line color
lineWidth
Type: number | undefined
Axis line width
tick
Type: { visible?: boolean; tickInside?: boolean; tickColor?: string; tickSize?: number; } | undefined
X-axis tick
visible
Type: boolean | undefined
Whether the tick is visible
tickInside
Type: boolean | undefined
Whether the tick points inward
tickColor
Type: string | undefined
Tick color
tickSize
Type: number | undefined
Tick size
title
Type: { visible?: boolean; titleText?: string; titleColor?: string; titleFontSize?: number; titleFontWeight?: number; } | undefined
X-axis title
visible
Type: boolean | undefined
Whether the title is visible
titleText
Type: string | undefined
Title text, defaults to field configuration
titleColor
Type: string | undefined
Title color
titleFontSize
Type: number | undefined
Title font size
titleFontWeight
Type: number | undefined
Title font weight
grid
Type: { visible?: boolean; gridColor?: string; gridWidth?: number; gridLineDash?: number[]; } | undefined
X-axis grid line
visible
Type: boolean | undefined
gridColor
Type: string | undefined
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)')
gridWidth
Type: number | undefined
Grid line width
gridLineDash
Type: number[] | undefined
Grid line type
animation
Type: { duration?: number; easing?: string; } | undefined
Y-axis animation configuration
duration
Type: number | undefined
X-axis, category axis; X-axis configuration used to define the chart's x-axis, including its position, format, style, etc.
easing
Type: string | undefined
Animation easing function
secondaryYAxis
Type: YLinearAxis | YLinearAxis[] | undefined
Animation duration
visible
Type: boolean | undefined
Whether the axis is visible
min
Type: number | undefined
The minimum value of the axis; has higher priority than 'nice' and 'zero'
max
Type: number | boolean | undefined
The maximum value of the axis; has higher priority than 'nice' and 'zero'. If set to true, the maximum value is automatically calculated based on the data range.
log
Type: boolean | undefined
Whether to use a logarithmic axis; only effective for numeric axes
logBase
Type: number | undefined
The base of the logarithmic axis; only effective for numeric axes
nice
Type: boolean | undefined
Whether to automatically adjust the axis scale interval to make the labels more readable; this configuration is ignored when min and max are specified. Only effective for numeric axes.
inverse
Type: boolean | undefined
Whether the axis is displayed in reverse; only effective for numeric axes
zero
Type: boolean | undefined
Whether to force the display of the zero value on the axis; this configuration is ignored when min and max are specified. Only effective for numeric axes.
autoFormat
Type: boolean | undefined
Whether to automatically format labels for the numeric axis; when autoFormat is true, the numFormat configuration is ignored. Only effective for numeric axes.
numFormat
Type: NumFormat | undefined
Numeric axis number formatting; only effective for numeric axes, with lower priority than autoFormat
type
Type: "number" | "percent" | "permille" | "scientific" | undefined
Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation
ratio
Type: number | undefined
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
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
Thousands separator for number formatting
suffix
Type: string | undefined
Number format suffix
prefix
Type: string | undefined
Number format prefix
fractionDigits
Type: number | undefined
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
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
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
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
X-axis tick label
visible
Type: boolean | undefined
Whether the label is visible
labelColor
Type: string | undefined
Label color
labelFontSize
Type: number | undefined
Label font size
labelFontWeight
Type: number | undefined
Label font weight
labelAngle
Type: number | undefined
Label rotation angle
line
Type: { visible?: boolean; lineColor?: string; lineWidth?: number; } | undefined
X-axis line
visible
Type: boolean | undefined
Whether the axis line is visible
lineColor
Type: string | undefined
Axis line color
lineWidth
Type: number | undefined
Axis line width
tick
Type: { visible?: boolean; tickInside?: boolean; tickColor?: string; tickSize?: number; } | undefined
X-axis tick
visible
Type: boolean | undefined
Whether the tick is visible
tickInside
Type: boolean | undefined
Whether the tick points inward
tickColor
Type: string | undefined
Tick color
tickSize
Type: number | undefined
Tick size
title
Type: { visible?: boolean; titleText?: string; titleColor?: string; titleFontSize?: number; titleFontWeight?: number; } | undefined
X-axis title
visible
Type: boolean | undefined
Whether the title is visible
titleText
Type: string | undefined
Title text, defaults to field configuration
titleColor
Type: string | undefined
Title color
titleFontSize
Type: number | undefined
Title font size
titleFontWeight
Type: number | undefined
Title font weight
grid
Type: { visible?: boolean; gridColor?: string; gridWidth?: number; gridLineDash?: number[]; } | undefined
X-axis grid line
visible
Type: boolean | undefined
gridColor
Type: string | undefined
Grid line color
gridWidth
Type: number | undefined
Grid line width
gridLineDash
Type: number[] | undefined
Grid line type
animation
Type: { duration?: number; easing?: string; } | undefined
Y-axis animation configuration
duration
Type: number | undefined
Animation duration
easing
Type: string | undefined
Animation easing function
xAxis
Type: XBandAxis | undefined
X-axis, category axis; X-axis configuration used to define the chart's x-axis, including its position, format, style, etc.
visible
Type: boolean | undefined
Whether the axis is visible
inverse
Type: boolean | undefined
Whether the axis is displayed in reverse; only effective for numeric axes
zero
Type: boolean | undefined
Whether to force the display of the zero value on the axis; this configuration is ignored when min and max are specified. Only effective for numeric axes.
labelAutoHide
Type: boolean | undefined
Axis label automatic hiding; if two labels overlap (interval is less than autoHideGap), the overlapping labels are automatically hidden. Only effective for category axes.
labelAutoHideGap
Type: number | undefined
Axis label automatic hiding interval; if the interval between two labels is less than autoHideGap, the overlapping labels are automatically hidden. Only effective for category axes.
autoHide enabled: uses autoHideSeparation.
autoHide disabled: uses sampling, set on minGap.
labelAutoRotate
Type: boolean | undefined
Axis label automatic rotation; labels are automatically rotated when their width exceeds the axis length. Only effective for category axes.
labelAutoRotateAngleRange
Type: number[] | undefined
Axis label automatic rotation angle range; defines the rotation angle range when automatic rotation is enabled. Only effective for category axes.
labelAutoLimit
Type: boolean | undefined
Axis label automatic length limit; when label width exceeds the axis length, the excess is indicated by an ellipsis and becomes visible upon hovering. Only effective for category axes.
labelAutoLimitLength
Type: number | undefined
Axis label maximum length limit; when label text length exceeds the maximum, the excess is indicated by an ellipsis and becomes visible upon hovering. Only effective for category axes.
label
Type: { visible?: boolean; labelColor?: string; labelFontSize?: number; labelFontWeight?: number; labelAngle?: number; } | undefined
X-axis tick label
visible
Type: boolean | undefined
Whether the label is visible
labelColor
Type: string | undefined
Label color
labelFontSize
Type: number | undefined
Label font size
labelFontWeight
Type: number | undefined
Label font weight
labelAngle
Type: number | undefined
Label rotation angle
line
Type: { visible?: boolean; lineColor?: string; lineWidth?: number; } | undefined
X-axis line
visible
Type: boolean | undefined
Whether the axis line is visible
lineColor
Type: string | undefined
Axis line color
lineWidth
Type: number | undefined
Axis line width
tick
Type: { visible?: boolean; tickInside?: boolean; tickColor?: string; tickSize?: number; } | undefined
X-axis tick
visible
Type: boolean | undefined
Whether the tick is visible
tickInside
Type: boolean | undefined
Whether the tick points inward
tickColor
Type: string | undefined
Tick color
tickSize
Type: number | undefined
Tick size
title
Type: { visible?: boolean; titleText?: string; titleColor?: string; titleFontSize?: number; titleFontWeight?: number; } | undefined
X-axis title
visible
Type: boolean | undefined
Whether the title is visible
titleText
Type: string | undefined
Title text, defaults to field configuration
titleColor
Type: string | undefined
Title color
titleFontSize
Type: number | undefined
Title font size
titleFontWeight
Type: number | undefined
Title font weight
grid
Type: { visible?: boolean; gridColor?: string; gridWidth?: number; gridLineDash?: number[]; } | undefined
X-axis grid line
visible
Type: boolean | undefined
gridColor
Type: string | undefined
Grid line color
gridWidth
Type: number | undefined
Grid line width
gridLineDash
Type: number[] | undefined
Grid line type
animation
Type: { duration?: number; easing?: string; } | undefined
X-axis animation configuration
duration
Type: number | undefined
Animation duration
easing
Type: string | undefined
Animation easing function
backgroundColor
Type: BackgroundColor
Chart background color. The background color can be a color string (default is transparent), such as 'red' or 'blue', or a hex, rgb, or rgba value like '#ff0000' or 'rgba(255,0,0,0.5)'.
color
Type: Color | undefined
Color configuration for defining the chart's color scheme, including color lists, color mappings, and color gradients.
colorScheme
Type: string[] | undefined
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
Linear gradient color scheme used to define the colors of different elements in the chart
Example ['#FFCDD2, #F8BBD0]
colorMapping
Type: Record<string, string> | undefined
Color mapping used to map data values to specific colors
Example { 'profit': 'red', 'sales': 'blue', }
positiveColor
Type: string | undefined
Positive/negative color configuration; defines the color for positive values in the chart
negativeColor
Type: string | undefined
Positive/negative color configuration; defines the color for negative values in the chart
label
Type: Label | undefined
Label configuration for defining chart data labels, including their position, format, and style.
enable
Type: false | true
Whether label functionality is enabled
wrap
Type: boolean | undefined
Whether labels wrap to the next line
showValue
Type: boolean | undefined
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
Whether labels display the percentage of 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
showDimension
Type: boolean | undefined
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
Whether label values are automatically formatted; when autoFormat is true, numFormat configuration is ignored
numFormat
Type: NumFormat | undefined
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
Number format type, supports: number (decimal), percent (%), permille (‰), scientific notation
ratio
Type: number | undefined
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
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
Thousands separator for number formatting
suffix
Type: string | undefined
Number format suffix
prefix
Type: string | undefined
Number format prefix
fractionDigits
Type: number | undefined
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
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
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
Rounding mode for number formatting, using the browser's Intl.NumberFormat, following the same rules as Intl.NumberFormat's roundingMode
labelFontSize
Type: number | undefined
Label font size
labelFontWeight
Type: string | number | undefined
Label font weight
labelBackgroundColor
Type: string | undefined
Label background color
labelStroke
Type: string | undefined
Label stroke color
labelColor
Type: string | undefined
Label font color
labelColorSmartInvert
Type: boolean | undefined
Whether the label font color automatically inverts based on the graphic element color
labelPosition
Type: "inside" | "outside" | undefined
label position
labelOverlap
Type: boolean | undefined
Whether the label anti-overlap feature is enabled
selector
Type: Selector | Selectors | undefined
Label filtering; the default relationship between selectors is OR
field
Type: string
Dimension field; the ID of an item in dimensions
operator
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
op
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
Same as operator
value
Type: string | number | (string | number)[]
Select the value of the dimension field in the data item; supports arrays
dynamicFilter
Type: ChartDynamicFilter | undefined
Dynamic filter (AI-generated code execution)
Implement complex data filtering logic via AI-generated JavaScript code.
Key capabilities:
-
Supports arbitrarily complex data filtering conditions
-
Uses built-in utility functions for data operations
-
Executes safely in the browser environment (Web Worker sandbox)
Environment requirement: only browser environments are supported; Node.js environments use fallback
Note: selector and dynamicFilter cannot be used at the same time; dynamicFilter has higher priority
Chart dynamic filter configuration
Filters chart marks (bars, points, etc.) via AI-generated JavaScript code
type
Type: "row-with-field"
description
Type: string | undefined
Description of the user's filtering requirements (natural language)
Example "Highlight bars with sales > 1000"
"Highlight the bar with the highest profit rate in each region"
code
Type: string
AI-generated JavaScript filtering code
- Only built-in utility functions can be used (accessed via _ or R)
- 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 row number of the original data item, and field represents the field to be illuminated
- Prohibited: eval, Function, asynchronous operations, DOM API, network requests
Example Highlight the 'sales' field for data items with sales greater than 1000
Highlight the data item with the highest profit rate in each region
Highlight data items filtered by multiple conditions
fallback
Type: Selector | Selectors | undefined
Fallback solution when code execution fails or the environment is not supported
field
Type: string
Dimension field; the ID of an item in dimensions
operator
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
op
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
Same as operator
value
Type: string | number | (string | number)[]
Select the value of the dimension field in the data item; supports arrays
result
Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined
Dynamic filter execution result (runtime field)
Written during the prepare() phase; read-only at runtime
success
Type: false | true
data
Type: T[] | undefined
error
Type: string | undefined
legend
Type: Legend | undefined
Legend configuration; used to define the chart legend, including its position, format, style, etc.
enable
Type: boolean | undefined
Whether the legend feature is enabled
Example enable: true
border
Type: boolean | undefined
Whether the legend border is enabled
Only effective for discrete legends
Example border: true
labelColor
Type: string | undefined
Legend font color
pagerIconColor
Type: string | undefined
Pager icon color
pagerIconDisableColor
Type: string | undefined
Pager icon disabled color
labelFontSize
Type: number | undefined
Legend font size
Example labelFontSize: 10
labelFontColor
Type: string | undefined
Legend font color
labelFontWeight
Type: string | number | undefined
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
Legend shape
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
Legend position
Example position: 'rightTop'
maxSize
Type: number | undefined
Maximum number of columns or rows for the legend when many items exist.
If the position is horizontal (bottom, bottomLeft, bottomRight, bl, br, top, topLeft, topRight, tl, tr), maxSize controls the number of displayed columns.
If the position is vertical (left, leftTop, leftBottom, lt, lb, right, rightTop, rightBottom, rt, rb), maxSize controls the number of displayed rows.
Only effective for discrete legends
Example maxSize: 2
tooltip
Type: Tooltip | undefined
Tooltip configuration; used to define chart tooltips, including their position, format, style, etc.
enable
Type: false | true
Whether the tooltips feature is enabled
brush
Type: Brush | undefined
Brush selection
Brush configuration; used to enable/disable brush selection capabilities.
Chart brush configuration
enable
Type: boolean | undefined
Whether to enable brush selection
brushType
Type: "rect" | "x" | "y" | "polygon" | undefined
Brush type
Defines the shape and direction of the selection box.
- rect: Rectangular selection; selection can be made in both X and Y directions simultaneously.
- polygon: Polygon selection; perform selection by clicking multiple points to draw an arbitrary polygon.
- x: X-axis selection; selection only in the X direction, with no limits in the Y direction.
- y: Y-axis selection; selection only in the Y direction, with no limits in the X direction.
brushMode
Type: "single" | "multiple" | undefined
Brush selection mode: single or multiple.
Defines the selection mode.
- single: Single selection mode; only one selection box can exist at a time.
- multiple: Multiple selection mode; multiple selection boxes can exist simultaneously.
removeOnClick
Type: boolean | undefined
Whether to clear the selection box after the brush selection ends
inBrushStyle
Type: { opacity?: number; stroke?: string; lineWidth?: number; } | undefined
Style for selected data items
Defines the style of the selected data points.
opacity
Type: number | undefined
Opacity
Opacity of the selected data points, ranging from 0 to 1
stroke
Type: string | undefined
Stroke color
lineWidth
Type: number | undefined
Stroke width
outOfBrushStyle
Type: { opacity?: number; stroke?: string; lineWidth?: number; } | undefined
Style for unselected data items
Defines the style of the unselected data points.
opacity
Type: number | undefined
Opacity
Opacity of unselected data points, ranging from 0 to 1
stroke
Type: string | undefined
Stroke color
lineWidth
Type: number | undefined
Stroke width
crosshairRect
Type: CrosshairRect | undefined
Vertical tooltip configuration used to define the chart's vertical tooltip, including its color, label style, etc.
Crosshair rectangle configuration; a configuration type used to display a crosshair rectangle in the chart
visible
Type: boolean | undefined
Whether to show the crosshair rectangle
rectColor
Type: string | undefined
Crosshair rectangle color
labelColor
Type: string | undefined
Crosshair rectangle label color
labelVisible
Type: boolean | undefined
Whether to show the crosshair rectangle label
labelBackgroundColor
Type: string | undefined
Crosshair rectangle label background color
sort
Type: Sort | undefined
X-axis sorting configuration; supports sorting by dimensions or measures, as well as custom sort orders
Category axis sorting configuration; supports sorting by dimensions or measures, as well as custom sort orders
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
Sort order; can be 'asc' or 'desc'
Example order:'asc'
orderBy
Type: string | undefined
Field to sort by; can be a dimension ID or measure ID
Example - orderBy:'date' - orderBy:'profit'
customOrder
Type: string[] | undefined
Custom sort order; this order will be directly applied to the category axis
sortLegend
Type: SortLegend | undefined
Legend sort configuration; supports sorting by dimension or measure, as well as custom sort order.
Legend sort configuration; supports sorting by dimension or measure, as well as custom sort order.; sort arrays follow left-to-right or top-to-bottom 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
Sort order; can be 'asc' or 'desc'
Example order:'asc'
orderBy
Type: string | undefined
Field to sort by; can be a dimension ID or measure ID
Example - orderBy:'date' - orderBy:'profit'
customOrder
Type: string[] | undefined
Custom sort order; this order will be directly applied to the legend. Ascending is from left-to-right or top-to-bottom, descending from right-to-left or bottom-to-top.
theme
Type: Theme | undefined
Chart theme; theme is a low-priority configuration containing general configurations shared across all chart types and specific ones for individual classes. Built-in light and dark themes are available; users can also customize themes via the Builder.
Theme
Built-in light and dark themes; new themes can be customized via registerTheme.
Example 'dark'
'light'
'customThemeName'
length
Type: number
brand
Type: brand
barMaxWidth
Type: string | number | undefined
Maximum width of the bars, can be a pixel value or a percentage string
barGapInGroup
Type: string | number | undefined
The distance between bars under the same category, can be a pixel value or a percentage string
barStyle
Type: BarStyle | BarStyle[] | undefined
Rectangular primitive style; used to define the bar chart style, including color, borders, corner radius, etc.
Supports global styles or conditional style configurations.
Data filter
If a selector is configured, it provides four types of data matching capabilities: value selector, local data selector, conditional dimension selector, and conditional measure selector.
If no selector is configured, the style is applied globally.
selector
Type: Selector | Selectors | undefined
Data selector
If a selector is configured, it provides four types of data matching capabilities: value selector, local data selector, conditional dimension selector, and conditional measure selector.
If no selector is configured, the style is applied globally.
Example Value selector selector = "tool" selector = ["tool", "book"] selector = 100 selector = [100, 200]
Local 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
Dimension field; the ID of an item in dimensions
operator
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
op
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
Same as operator
value
Type: string | number | (string | number)[]
Select the value of the dimension field in the data item; supports arrays
dynamicFilter
Type: ChartDynamicFilter | undefined
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 arbitrarily complex data filtering conditions
-
Uses built-in utility functions for data operations
-
Executes safely in the browser environment (Web Worker sandbox)
Environment requirement: only browser environments are supported; Node.js environments use fallback
Note: selector and dynamicFilter cannot be used at the same time; dynamicFilter has higher priority
Chart dynamic filter configuration
Filters chart marks (bars, points, etc.) via AI-generated JavaScript code
type
Type: "row-with-field"
description
Type: string | undefined
Description of the user's filtering requirements (natural language)
Example "Highlight bars with sales > 1000"
"Highlight the bar with the highest profit rate in each region"
code
Type: string
AI-generated JavaScript filtering code
- Only built-in utility functions can be used (accessed via _ or R)
- 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 row number of the original data item, and field represents the field to be illuminated
- Prohibited: eval, Function, asynchronous operations, DOM API, network requests
Example Highlight the 'sales' field for data items with sales greater than 1000
Highlight the data item with the highest profit rate in each region
Highlight data items filtered by multiple conditions
fallback
Type: Selector | Selectors | undefined
Fallback solution when code execution fails or the environment is not supported
field
Type: string
Dimension field; the ID of an item in dimensions
operator
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
op
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
Same as operator
value
Type: string | number | (string | number)[]
Select the value of the dimension field in the data item; supports arrays
result
Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined
Dynamic filter execution result (runtime field)
Written during the prepare() phase; read-only at runtime
success
Type: false | true
data
Type: T[] | undefined
error
Type: string | undefined
barVisible
Type: boolean | undefined
Whether the bar element (rectangle) is visible
barColor
Type: string | undefined
Bar element (rectangle) color
barColorOpacity
Type: number | undefined
Bar element (rectangle) opacity
barBorderColor
Type: string | undefined
Bar element (rectangle) border color
barBorderWidth
Type: number | undefined
Bar element (rectangle) border width
barBorderStyle
Type: "solid" | "dashed" | "dotted" | undefined
Bar element (rectangle) border style
Example solid
dashed
dotted
barBorderOpacity
Type: number | undefined
Bar element (rectangle) corner radius
Bar element (rectangle) stroke opacity
Example 4
[0, 0, 10, 10]
barRadius
Type: number | number[] | undefined
lineStyle
Type: LineStyle | LineStyle[] | undefined
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
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
Dimension field, the ID of a dimension item
operator
Type: "in" | "not in" | undefined
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
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)[]
Select dimension values; supports arrays
dynamicFilter
Type: ChartDynamicFilter | undefined
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
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
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
Highlight the data item with the highest profit margin in each region
Highlight data items filtered by multiple conditions
fallback
Type: Selector | Selectors | undefined
Fallback plan when code execution fails or environment is not supported
field
Type: string
Dimension field, the ID of a dimension item
operator
Type: "in" | "not in" | undefined
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
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)[]
Select dimension values; supports arrays
result
Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined
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
Whether the line segment is visible
lineSmooth
Type: boolean | undefined
Whether the line segment is smooth
lineColor
Type: string | undefined
Line segment color
lineColorOpacity
Type: number | undefined
Line segment opacity
lineWidth
Type: number | undefined
Line segment width
lineStyle
Type: "solid" | "dashed" | "dotted" | undefined
Line segment style
Example
lineStyle: 'solid'
pointStyle
Type: PointStyle | PointStyle[] | undefined
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
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
Dimension field, the ID of a dimension item
operator
Type: "in" | "not in" | undefined
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
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)[]
Select dimension values; supports arrays
dynamicFilter
Type: ChartDynamicFilter | undefined
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
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
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
Highlight the data item with the highest profit margin in each region
Highlight data items filtered by multiple conditions
fallback
Type: Selector | Selectors | undefined
Fallback plan when code execution fails or environment is not supported
field
Type: string
Dimension field, the ID of a dimension item
operator
Type: "in" | "not in" | undefined
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
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)[]
Select dimension values; supports arrays
result
Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined
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
Whether the point is visible
pointSize
Type: number | undefined
Point size
pointColor
Type: string | undefined
Point element color
pointColorOpacity
Type: number | undefined
Point element opacity
pointBorderColor
Type: string | undefined
Point element border color
pointBorderWidth
Type: number | undefined
Point element border width
pointBorderStyle
Type: "solid" | "dashed" | "dotted" | undefined
Point element border style
Example solid
dashed
dotted
areaStyle
Type: AreaStyle | AreaStyle[] | undefined
Area element style configuration, used to define the style for chart area elements, including colors, opacity, 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
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
Dimension field, the ID of a dimension item
operator
Type: "in" | "not in" | undefined
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
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)[]
Select dimension values; supports arrays
dynamicFilter
Type: ChartDynamicFilter | undefined
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
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
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
Highlight the data item with the highest profit margin in each region
Highlight data items filtered by multiple conditions
fallback
Type: Selector | Selectors | undefined
Fallback plan when code execution fails or environment is not supported
field
Type: string
Dimension field, the ID of a dimension item
operator
Type: "in" | "not in" | undefined
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
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)[]
Select dimension values; supports arrays
result
Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined
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
areaVisible
Type: boolean | undefined
Whether the area element is visible
areaColor
Type: string | undefined
Color of the area element
areaColorOpacity
Type: number | undefined
Opacity of the area element color
annotationPoint
Type: AnnotationPoint | AnnotationPoint[] | undefined
Annotation point configuration; defines points on the chart based on selected data, including their position, format, style, etc.
selector
Type: Selector | Selectors | undefined
Selector for the annotation point, used to select data points.
field
Type: string
Dimension field; the ID of an item in dimensions
operator
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
op
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
Same as operator
value
Type: string | number | (string | number)[]
Select the value of the dimension field in the data item; supports arrays
measureId
Type: string | undefined
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
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 arbitrarily complex data filtering conditions
-
Uses built-in utility functions for data operations
-
Executes safely in the browser environment (Web Worker sandbox)
Environment requirement: only browser environments are supported; Node.js environments use fallback
Note: selector and dynamicFilter cannot be used at the same time; dynamicFilter has higher priority
Chart dynamic filter configuration
Filters chart marks (bars, points, etc.) via AI-generated JavaScript code
type
Type: "row-with-field"
description
Type: string | undefined
Description of the user's filtering requirements (natural language)
Example "Highlight bars with sales > 1000"
"Highlight the bar with the highest profit rate in each region"
code
Type: string
AI-generated JavaScript filtering code
- Only built-in utility functions can be used (accessed via _ or R)
- 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 row number of the original data item, and field represents the field to be illuminated
- Prohibited: eval, Function, asynchronous operations, DOM API, network requests
Example Highlight the 'sales' field for data items with sales greater than 1000
Highlight the data item with the highest profit rate in each region
Highlight data items filtered by multiple conditions
fallback
Type: Selector | Selectors | undefined
Fallback solution when code execution fails or the environment is not supported
field
Type: string
Dimension field; the ID of an item in dimensions
operator
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
op
Type: "in" | "not in" | undefined
Operator
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
Same as operator
value
Type: string | number | (string | number)[]
Select the value of the dimension field in the data item; supports arrays
result
Type: DynamicFilterExecutionResult<RowWithFieldRes> | undefined
Dynamic filter execution result (runtime field)
Written during the prepare() phase; read-only at runtime
success
Type: false | true
data
Type: T[] | undefined
error
Type: string | undefined
text
Type: string | string[] | undefined
Annotation text
Example 'Annotation text'
textColor
Type: string | undefined
Text color
Example 'red'
textFontSize
Type: number | undefined
Text font size
Example 12
textFontWeight
Type: number | undefined
Text font weight
Example 400
textAlign
Type: "left" | "right" | "center" | undefined
Text alignment. In general, set it to right so the text appears to the left of the annotation point and stays within the visible chart area
Recommended to set it to right, which keeps the text on the left side of the annotation point
right: the text is on the left side of the annotation point, with the right edge aligned to the point
left: the text is on the right side of the annotation point, with the left edge aligned to the point
center: the text is centered on the annotation point, with the text center aligned to the point
Example 'right' Text is on the left side of the annotation point.
textBaseline
Type: "top" | "bottom" | "middle" | undefined
Text vertical alignment; generally set to 'top' so the text appears below the point, ensuring visibility within the chart area.
Recommended to set as 'top' to ensure the text is fully displayed within the chart area.
top: Text is at the bottom of the point; the top edge of the text aligns with the point.
middle: Text is centered on the point.
bottom: Text is at the top of the point; the bottom edge of the text aligns with the point.
Example 'top' Text is at the bottom of the annotation point.
textBackgroundVisible
Type: boolean | undefined
Background visible
Example true
textBackgroundColor
Type: string | undefined
Background color
Example 'red'
textBackgroundBorderColor
Type: string | undefined
Background border color
Example 'red'
textBackgroundBorderWidth
Type: number | undefined
Background border width
Example 2
textBackgroundBorderRadius
Type: number | undefined
Background border radius
Example 4
textBackgroundPadding
Type: number | undefined
Background padding
Example 4
offsetY
Type: number | undefined
The overall pixel offset of the annotation point in the Y direction. When the point is above the chart (higher values), it is recommended to set a positive value. When below (lower values), it is recommended to set a negative value.
A negative value shifts it upwards; for example, setting it to -10 shifts the entire annotation component (text, background) up by 10 pixels.
A positive value shifts it downwards; for example, setting it to 10 shifts the entire annotation component down by 10 pixels.
Example offsetY: 5, Annotation point overall offset down by 5 pixels
offsetX
Type: number | undefined
The overall pixel offset of the annotation point in the X direction. When the point is on the left of the chart (start of the category axis), it is recommended to set it to a positive value. When on the right (end of the category axis), it is recommended to set a negative value.
A negative value shifts it leftwards; for example, setting it to -10 shifts the entire annotation component (text, background) left by 10 pixels.
A positive value shifts it rightwards; for example, setting it to 10 shifts the entire annotation component right by 10 pixels.
Example offsetX: 5, Annotation point overall offset to the right by 5 pixels
annotationVerticalLine
Type: AnnotationVerticalLine | AnnotationVerticalLine[] | undefined
Dimension value mark line, displayed vertically; allows setting position, style, etc.
xValue
Type: string | number | (string | number)[] | undefined
Fixed X-value for the vertical annotation line; if the category axis is in the X direction, enter a dimension value; if the numeric axis is in the X direction, enter a specific value.
dynamicFilter
Type: ValueDynamicFilter | undefined
Dynamic filter (AI-generated code execution)
Dynamically calculates the annotation line value via AI-generated JavaScript code.
Suitable for scenarios where the annotation line position must be determined dynamically from data, such as average, maximum, quantile, and business lines.
Only supports browser environments (requires Web Worker).
type
Type: "value"
description
Type: string | undefined
Description of the user's filtering requirements (natural language)
Example "Get the highest sales value as an annotation line reference"
"Calculate average sales for the annotation line"
code
Type: string
AI-generated JavaScript filtering code
- Only built-in utility functions can be used (accessed via _ or R)
- Input parameters: data (array)
- Must return a single number or string: number | string
- Applicable scenarios: Dynamic values needed for annotation lines (horizontal or vertical)
- Prohibited: eval, Function, asynchronous operations, DOM API, network requests
Example Get the maximum sales value as the annotation line value
Calculate average for the annotation line
Get quantiles for the annotation line
Calculate goal value based on conditions
fallback
Type: string | number | undefined
Fallback solution when code execution fails or the environment is not supported
result
Type: { success: boolean; data?: number | string; } | undefined
Dynamic filter execution result (runtime field)
Written during the prepare() phase; read-only at runtime
success
Type: false | true
data
Type: string | number | undefined
text
Type: string | string[] | undefined
Annotation text
Example 'Annotation text'
textPosition
Type: "outsideStart" | "outsideEnd" | "outsideMiddle" | "insideStart" | "insideMiddle" | "insideEnd" | undefined
Text position; location of the annotation line's label (relative to the line).
Example 'outsideEnd'
textColor
Type: string | undefined
Text color
Example 'red'
textFontSize
Type: number | undefined
Text font size
Example 12
textFontWeight
Type: number | undefined
Text font weight
Example 400
textAlign
Type: "left" | "right" | "center" | undefined
Text alignment; generally unnecessary to set.
Recommended to set as 'right' to ensure text is on the left of the line.
right: Text is on the left of the reference line; the right edge of the text aligns with the (vertical) annotation line.
left: Text is on the right of the reference line; the left edge of the text aligns with the (vertical) annotation line.
center: Text is centered on the reference line; the center of the text aligns with the (vertical) annotation line.
Example 'right'
textBaseline
Type: "top" | "bottom" | "middle" | undefined
Text vertical alignment; generally unnecessary to set.
Recommended to set as 'top' to ensure the text is fully displayed within the chart area.
top: Text is at the bottom of the reference line; the top edge of the text aligns with the (vertical) annotation line's end.
middle: Text is centered on the reference line; the center of the text aligns with the (vertical) annotation line's end.
bottom: Text is at the top of the reference line; the bottom edge of the text aligns with the (vertical) annotation line's end.
Example 'top'
lineVisible
Type: boolean | undefined
Line visible
Example true
lineColor
Type: string | undefined
Line color
Example 'red'
lineWidth
Type: number | undefined
Line width
Example 2
lineStyle
Type: "solid" | "dashed" | "dotted" | undefined
Line style
Example 'solid'
textBackgroundVisible
Type: boolean | undefined
Background visible
Example true
textBackgroundColor
Type: string | undefined
Background color
Example 'red'
textBackgroundBorderColor
Type: string | undefined
Background border color
Example 'red'
textBackgroundBorderWidth
Type: number | undefined
Background border width
Example 2
textBackgroundBorderRadius
Type: number | undefined
Background border radius
Example 4
textBackgroundPadding
Type: number | undefined
Background padding
Example 4
annotationHorizontalLine
Type: AnnotationHorizontalLine | AnnotationHorizontalLine[] | undefined
Numeric mark line (including mean, maximum, minimum lines, etc.), displayed horizontally; allows setting position, style, etc. For drawing mark lines corresponding to numeric values like the mean, use this configuration.
yValue
Type: string | number | (string | number)[] | undefined
Fixed Y-value for the horizontal annotation line; if the category axis is in the Y direction, enter a dimension value; if the numeric axis is in the Y direction, enter a specific value.
dynamicFilter
Type: ValueDynamicFilter | undefined
Dynamic filter (AI-generated code execution)
Dynamically calculates the annotation line value via AI-generated JavaScript code.
Suitable for scenarios where the annotation line position must be determined dynamically from data, such as average, maximum, quantile, and business lines.
Only supports browser environments (requires Web Worker).
type
Type: "value"
description
Type: string | undefined
Description of the user's filtering requirements (natural language)
Example "Get the highest sales value as an annotation line reference"
"Calculate average sales for the annotation line"
code
Type: string
AI-generated JavaScript filtering code
- Only built-in utility functions can be used (accessed via _ or R)
- Input parameters: data (array)
- Must return a single number or string: number | string
- Applicable scenarios: Dynamic values needed for annotation lines (horizontal or vertical)
- Prohibited: eval, Function, asynchronous operations, DOM API, network requests
Example Get the maximum sales value as the annotation line value
Calculate average for the annotation line
Get quantiles for the annotation line
Calculate goal value based on conditions
fallback
Type: string | number | undefined
Fallback solution when code execution fails or the environment is not supported
result
Type: { success: boolean; data?: number | string; } | undefined
Dynamic filter execution result (runtime field)
Written during the prepare() phase; read-only at runtime
success
Type: false | true
data
Type: string | number | undefined
text
Type: string | string[] | undefined
Annotation text
Example 'Annotation text'
textPosition
Type: "outsideStart" | "outsideEnd" | "outsideMiddle" | "insideStart" | "insideMiddle" | "insideEnd" | undefined
Text position
Location of the annotation line's label (relative to the line).
Example 'outsideEnd'
textColor
Type: string | undefined
Text color
Example 'red'
textFontSize
Type: number | undefined
Text font size
Example 12
textFontWeight
Type: number | undefined
Text font weight
Example 400
textAlign
Type: "left" | "right" | "center" | undefined
Text alignment. In general, no setting is required
Recommended to set it to right, which keeps the text on the left side of the annotation line
right: the text is on the left side of the reference line, with the right edge aligned to the end of the horizontal annotation line
left: the text is on the right side of the reference line, with the left edge aligned to the end of the horizontal annotation line
center: the text is centered on the reference line, with the text center aligned to the end of the horizontal annotation line
Example 'right'
textBaseline
Type: "top" | "bottom" | "middle" | undefined
Text vertical alignment; generally unnecessary to set.
Recommended to set as 'top' to ensure the text is fully displayed within the chart area.
top: Text is at the bottom of the reference line; the top edge of the text aligns with the horizontal annotation line.
middle: Text is centered on the reference line; the center of the text aligns with the horizontal annotation line.
bottom: Text is at the top of the reference line; the bottom edge of the text aligns with the horizontal annotation line.
Example 'top'
textBackgroundVisible
Type: boolean | undefined
Background visible
Example true
textBackgroundColor
Type: string | undefined
Background color
Example 'red'
textBackgroundBorderColor
Type: string | undefined
Background border color
Example 'red'
textBackgroundBorderWidth
Type: number | undefined
Background border width
Background border width
Example 2
textBackgroundBorderRadius
Type: number | undefined
Background border radius
Example 4
textBackgroundPadding
Type: number | undefined
Background padding
Example 4
lineVisible
Type: boolean | undefined
Line visible
Line visible
Example true
lineColor
Type: string | undefined
Line color
Example 'red'
lineWidth
Type: number | undefined
Line width
Example 2
lineStyle
Type: "solid" | "dashed" | "dotted" | undefined
Line style
Example 'solid'
splitLine
Type: boolean | { positiveColor?: string; negativeColor?: string; } | undefined
Whether to enable splitting the main line into two segments.
positiveColor
Type: string | undefined
Primary color for parts greater than the annotation value
negativeColor
Type: string | undefined
Primary color for parts less than the annotation value
annotationArea
Type: AnnotationArea | AnnotationArea[] | undefined
Annotation area configuration; defines an area on the chart based on selected data, including its position, style, etc.
Depends on selected data for area marking.
selector
Type: AreaSelector | AreaSelectors | undefined
Dimension field; the ID of an item in dimensions
field
Type: string
Operator
operator
Type: "in" | "not in" | undefined
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
Operator
op
Type: "in" | "not in" | undefined
- in: Select data items where the value of the dimension field is in 'value'
- not in: Select data items where the value of the dimension field is not in 'value'
- not in: Select data items where the dimension field value is not in 'value'
Select the value of the dimension field in the data item; supports arrays
value
Type: string | number | (string | number)[]
Annotation text
text
Type: string | string[] | undefined
Annotation text
Example Text position
textPosition
Type: "left" | "top" | "topLeft" | "topRight" | "right" | "bottom" | "bottomLeft" | "bottomRight" | undefined
Text position
Example Text color
textColor
Type: string | undefined
Text color
Example Text font size
textFontSize
Type: number | undefined
Text font size
Example Text font weight
textFontWeight
Type: number | undefined
Text font weight
Example Text alignment; generally set to 'right' so the text appears in the middle of the area, ensuring visibility.
textAlign
Type: "left" | "right" | "center" | undefined
Text alignment. In general, set it to right; the text is displayed in the middle of the annotation area to ensure it stays within the visible chart area
Recommended to set it to center, which keeps the text in the middle of the annotation area
right: the text is on the left side of the annotation area, with the right edge aligned to the annotation area
left: the text is on the right side of the annotation area, with the left edge aligned to the annotation area
center: the text is centered in the annotation area, with the text center aligned to the annotation area
Example Text vertical alignment; generally set to 'top' so the text appears at the bottom of the area, ensuring visibility.
textBaseline
Type: "top" | "bottom" | "middle" | undefined
Recommended to set as 'top' to ensure the text is fully displayed within the chart area.
top: Text is at the bottom of the area; the top edge of the text aligns with the area.
middle: Text is centered in the area.
bottom: Text is at the top of the area; the bottom edge of the text aligns with the area.
bottom: Text is at the top of the mark area, its bottom edge aligned with the area.
Example Background visible
textBackgroundVisible
Type: boolean | undefined
Background visible
Example Background color
textBackgroundColor
Type: string | undefined
Background color
Example Background border color
textBackgroundBorderColor
Type: string | undefined
Background border color
Example 'red'
textBackgroundBorderWidth
Type: number | undefined
Background border width
Example 2
textBackgroundBorderRadius
Type: number | undefined
Background border radius
Example Background border radius
textBackgroundPadding
Type: number | undefined
Background padding
Example Background padding
areaColor
Type: string | undefined
Mark area region color
Example Annotation area color
areaColorOpacity
Type: number | undefined
Mark area region color opacity
Example Annotation area opacity
areaBorderColor
Type: string | undefined
Mark area region border color
Example Annotation area border color
areaBorderWidth
Type: number | undefined
Mark area region border width
Example Annotation area border width
areaBorderRadius
Type: number | undefined
Mark area region border radius
Example Annotation area border radius
areaLineDash
Type: number[] | undefined
Line type for the mark area region border
Example Annotation area border line style
outerPadding
Type: number | undefined
Margin for the mark area region
Example Annotation area padding
dimensionLinkage
Type: DimensionLinkage | undefined
When chart pivoting or measure combination is enabled, whether to enable dimension linkage.
When hovering over a dimension value, highlight data with the same dimension value in other charts.
Pivot chart dimension linkage configuration
enable
Type: false | true
Whether to enable pivot chart dimension linkage
showTooltip
Type: boolean | undefined
Whether to show Tooltip information for child charts corresponding to all dimensions
showLabel
Type: boolean | undefined
Whether to show the label corresponding to the crosshair
locale
Type: "zh-CN" | "en-US" | "ja-JP" | "de-DE" | "id-ID" | "fr-FR" | "ko-KR" | "vi-VN" | undefined
Chart language configuration. Supports 'zh-CN' and 'en-US'. You can also call intl.setLocale('zh-CN') to set the language