Purpose
Based on the source implementation in~/workspace/source/src/component/dataZoom/DataZoomModel.ts, the data zoom component:
- Controls the visible data range on axes
- Supports multiple interaction types: slider, inside (mouse/touch), and select (toolbox)
- Works with multiple axes simultaneously
- Provides smooth transitions and real-time updates
- Filters or empties data outside the selected range
Types of Data Zoom
ECharts provides three data zoom types:- Slider (
dataZoom.slider): Visual slider control - Inside (
dataZoom.inside): Mouse wheel and drag interactions - Select (
dataZoom.select): Toolbox brush selection
Slider Data Zoom
From~/workspace/source/src/component/dataZoom/SliderZoomModel.ts:
Inside Data Zoom
From~/workspace/source/src/component/dataZoom/InsideZoomModel.ts:
Combined Slider and Inside
Vertical Data Zoom
Configuration Options
Common Properties (All Types)
From~/workspace/source/src/component/dataZoom/DataZoomModel.ts:
Type of data zoom component. Required for proper initialization.
Orientation of the data zoom. Auto-determined by target axis if not specified.
Axis Targeting
Index or indices of x-axes to control. From
DataZoomModel.ts:50.Index or indices of y-axes to control. From
DataZoomModel.ts:56.Index of radius axis to control (for polar coordinates).
Index of angle axis to control (for polar coordinates).
Index of single axis to control.
Range Control
Start position as percentage (0-100). From
DataZoomModel.ts:167.End position as percentage (0-100). From
DataZoomModel.ts:168.Start value on the axis. If specified,
start is ignored.From DataZoomModel.ts:104.End value on the axis. If specified,
end is ignored.From DataZoomModel.ts:108.Minimum span percentage (0-100). Prevents zoom range from becoming too small.From
DataZoomModel.ts:113.Maximum span percentage (0-100). Prevents zoom range from becoming too large.From
DataZoomModel.ts:118.Minimum value span. Alternative to
minSpan using actual values.Maximum value span. Alternative to
maxSpan using actual values.Range mode for start and end separately:
'percent': Percentage mode (default)'value': Absolute value mode
DataZoomModel.ts:180-194.Data Filtering
How to handle data outside the zoom range:
'filter': Remove data points where any dimension is out of range'weakFilter': Remove only if all dimensions are out on the same side'empty': Set out-of-range data to empty (shows gaps in line charts)'none': No filtering
DataZoomModel.ts:68-84 and default at DataZoomModel.ts:165.Performance
Throttle delay in milliseconds to avoid excessive updates.Default is 100 if animation is enabled, otherwise 20. Set to null to disable.From
DataZoomModel.ts:87-92 and implementation at DataZoomModel.ts:384-394.Whether to update chart in real-time during dragging. True for immediate updates.
Slider-Specific Options
From~/workspace/source/src/component/dataZoom/SliderZoomModel.ts:
Whether to display the slider component. From
SliderZoomModel.ts:151.Background color of the slider zoom component. From
SliderZoomModel.ts:164.Border color of the slider box. From
SliderZoomModel.ts:161.Border radius of the slider box.
Data Shadow
Whether to show data shadow in the slider background. Auto shows for series with few data points.From
SliderZoomModel.ts:208.Style for the data shadow background. From
SliderZoomModel.ts:167-176:Style for selected data shadow. From
SliderZoomModel.ts:178-187.Slider Handles
SVG path for handle icons. Default path in
SliderZoomModel.ts:191.Size of handle. Number for pixels, string for percentage of slider height.From
SliderZoomModel.ts:193.Style for handles. From
SliderZoomModel.ts:195-198:Label configuration for handles showing current values.
Move Handle
Icon for the draggable area between handles. From
SliderZoomModel.ts:201.Size of the move handle icon. From
SliderZoomModel.ts:200.Style for move handle. From
SliderZoomModel.ts:202-205.Display Options
Whether to show detail (current value) on handles. From
SliderZoomModel.ts:207.Precision for displayed numbers. Auto determines based on data.
Formatter for handle labels:
Color of the selected range area. From
SliderZoomModel.ts:190.Brush Selection
Whether to enable brush selection on the slider. From
SliderZoomModel.ts:216.Style for brush selection area. From
SliderZoomModel.ts:217-220.Whether to lock the zoom range size (only allow panning). From
SliderZoomModel.ts:210.Text Styling
Text style for labels. From
SliderZoomModel.ts:212-214.Inside-Specific Options
From~/workspace/source/src/component/dataZoom/InsideZoomModel.ts:
Whether to disable this inside zoom completely. From
InsideZoomModel.ts:55.Whether to disable zoom but allow panning. From
InsideZoomModel.ts:56.Enable zoom on mouse wheel. Can require modifier key:
true: Always enabledfalse: Disabled'shift' | 'ctrl' | 'alt': Only when modifier key is pressed
InsideZoomModel.ts:57.Enable panning on mouse drag. Can require modifier key.From
InsideZoomModel.ts:59.Enable panning on mouse wheel. Can require modifier key.From
InsideZoomModel.ts:61.Whether to prevent default mouse move behavior. From
InsideZoomModel.ts:63.