Axis X
Axis Y
Scale of the series
Append a single XY
coordinate or list of coordinates into the series.
// Example syntax
LineSeries.add({ x: 0, y: 100 })
LineSeries.add([
{ x: 0, y: 100 },
{ x: 10, y: 50 },
{ x: 20, y: 75 },
])
Object itself for fluent interface.
Each X-value will be paired with an automatically generated Y-value, based on step-argument. This method will cause some overhead based on amount of data added, using add method is recommended.
Array of X-values.
Optional step between each Y coordinate. Defaults to 1.
Optional value for first generated Y-value. If undefined, will continue after last point's Y value in series, or 0 if there are no points in series.
Object itself for fluent interface.
Each Y-value will be paired with an automatically generated X-value, based on step-argument.
Array of Y-values.
Optional step between each X coordinate. Defaults to 1.
Optional value for first generated X-value. If undefined, will continue after last point's X value in series, or 0 if there are no points in series.
Object itself for fluent interface.
Add two individual Arrays, one for X-values, and another for Y-values.
Array of X-values.
Array of Y-values. Length should be equal to length of arrayX.
Object itself for fluent interface.
Add Marker to the Series.
StaticCursorBuilderXY object for customized look of marker. MarkerBuilders.XY can be used to build a custom one from scratch.
SeriesMarkerXY
Attach object to an legendBox entry
Object which has to be attached
Flag that indicates whether the Attachable should be disposed/restored, when its respective Entry is clicked.
Series itself for fluent interface
Clear all previously pushed data points from the series.
// Example usage
LineSeries.clear()
Object itself for fluent interface.
Remove everything related to the object from all collections associated with rendering cycle and allows the object to be collected by GC
Object itself for fluent interface
Whether Cursor is enabled or not
Get if cursor interpolates solved data-points along series by default.
Cursor interpolation is only supported if the LineSeries
follows a progressive data-pattern, refer to ChartXY.addLineSeries for
more information on data-patterns.
Boolean flag
Get ResultTable Formatter.
Function which builds ResultTable content for SeriesXY.
Get basis of solving data point nearest to a given location from this series.
Default configuration is 'nearest'
.
String describing the desired solve behavior.
Get progressive data cleaning threshold.
This feature allows configuring automatic data cleaning in infinitely scrolling applications.
This feature is only intended for progressive data patterns!
To learn of LineSeries
data patterns, refer to LineSeriesOptions.dataPattern.
The data cleaning threshold is a position on a single Axis (either X or Y) of the series. All data that exists behind this threshold, can be cleaned at any convenient time by the rendering engine, releasing memory for more data.
The behavior of data cleaning threshold is based on the pattern
argument supplied to LineSeriesOptions.dataPattern:
'ProgressiveX'
-> data cleaning threshold is a position on X Axis. All data points whose X
coordinate is less than the threshold, can be cleaned.'RegressiveX'
-> data cleaning threshold is a position on X Axis. All data points whose X
coordinate is more than the threshold, can be cleaned.'ProgressiveY'
-> data cleaning threshold is a position on Y Axis. All data points whose Y
coordinate is less than the threshold, can be cleaned.'RegressiveY'
-> data cleaning threshold is a position on Y Axis. All data points whose Y
coordinate is more than the threshold, can be cleaned.Data cleaning threshold value or undefined
.
Get boolean flag for whether object should highlight on mouse hover
Boolean for if object should highlight on mouse hover or not.
the state of highlighted flag
Get boolean flag for whether object is currently under mouse or not
Boolean for is object under mouse currently
Copy of last point added to the Series or undefined if it doesn't exist.
Get amount of points that series should keep around at all times (data-cleaning won't touch them).
Number of points, or undefined if data-cleaning is disabled
Get mouse interactions enabled or disabled. Disabled mouse-interactions will naturally prevent mouse-driven highlighting from ever happening.
Mouse interactions state
Get the name of the Component.
The name of the Component.
Get amount of points that series currently has.
Number of points
Get stroke style of Series.
SolidLine object
Get stroke style of Series when it is highlighted. Highlighting is activated by placing mouse on top / touching Series (if mouse-interactions are not disabled), or by using setHighlighted() method.
SolidLine object
Max X value of the series or 0
if series has no data.
Min X value of the series or 0
if series has no data.
Max Y value of the series or 0
if series has no data.
Min Y value of the series or 0
if series has no data.
TODO: True for enabled and false for disabled
Unsubscribe from Highlight object event. This is called whenever an object is highlighted
Token that was received when subscribing to the event.
True if the unsubscription was successful.
Remove event listener from Series Hover Event.
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Click Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Double Click Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Down Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Drag Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Drag Start Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Drag Stop Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Enter Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Leave Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Move Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Up Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Mouse Wheel Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Touch End Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Touch Move Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Remove event listener from Touch Start Event
Token of event listener which has to be removed
True if the listener is successfully removed and false if it is not found
Subscribe to highlight object event. This is called whenever an object is highlighted.
Function that is called when event is triggered.
Token that can be used to unsubscribe from the event.
Add event listener to Series Hover Event. Hover event is a custom mouse-event designed for Series that is the main link between Cursors and Series.
Callback function that is called whenever mouse enters / moves or leaves the Series
Token of the event listener
Add event listener to Mouse Click Event
Event listener for Mouse Click Event
Token of the event listener
Add event listener to Mouse Double Click Event
Event listener for Mouse Double Click Event
Token of the event listener
Add event listener to Mouse Down Event
Event listener for Mouse Down Event
Token of the event listener
Subscribe to Mouse Drag event
Subscribe to Mouse Drag Start event
Subscribe to Mouse Drag Stop event
Add event listener to Enter Event
Event listener for Mouse Enter Event
Token of the event listener
Add event listener to Mouse Leave Event
Event listener for Mouse Leave Event
Token of the event listener
Add event listener to Mouse Move Event
Event listener for Mouse Move Event
Token of the event listener
Add event listener to Mouse Up Event
Event listener for Mouse Up Event
Token of the event listener
Subscribe to Mouse Wheel event
Event handler function
Token of subscription
Subscribe to Touch End event
Event handler function
Token of subscription
Subscribe to Touch Move event
Event handler function
Token of subscription
Subscribe to Touch Start event
Event handler function
Token of subscription
Tell the owning chart to restore this series.
Object itself.
Configure whether cursors should pick on this particular series or not.
// Example, prevent chart auto cursor from snapping to a series.
LineSeries.setCursorEnabled(false)
Related API:
'nearest-x'
, 'nearest'
, etc.).
This method is not available for all series types (more support will be added in near future).Set if cursor interpolates solved data-points along series by default.
// Example, disable default interpolation of progressiveX line series.
const series = ChartXY.addLineSeries({
dataPattern: {
pattern: 'ProgressiveX'
}
})
.setCursorInterpolationEnabled(false)
Cursor interpolation is only supported with a collection of configuration combinations:
'nearest'
'nearestX'
'nearestY'
With any other combination, or if cursor intepolation is disabled, the closest actual data point will be selected.
Related information:
Related API:
'nearest-x'
, 'nearest'
, etc.).Boolean flag
Object itself for fluent interface
Configure formatting of Cursor ResultTable when pointing at this series.
// Example usage
LineSeries.setCursorResultTableFormatter((tableBuilder, series, x, y) => {
return tableBuilder
.addRow(`Pointing at`, '', series.getName())
.addRow(`X:`, '', x.toFixed(1))
.addRow(`Y:`, '', y.toFixed(1))
})
The general syntax of configuring ResultTable formatting is shared between all series types; You specify a callback function, which receives a TableContentBuilder. The contents of the table are then set using methods of the table builder:
// Using TableContentBuilder.
LineSeries.setCursorResultTableFormatter((tableBuilder, series, x, y) => {
// addRow adds a list of strings to a new row in the table. Empty strings ('') will allocate any extra horizontal space within the row.
tableBuilder
.addRow('Item 0:', '', 'Value 0')
.addRow('Item 1:', '', 'Value 1')
.addRow('Long row that highlights the idea of empty strings')
// After configuration, the table builder must be returned!
return tableBuilder
})
The additional values that are supplied to the callback function, vary per series,
refer to the series documentation of setCursorResultTableFormatter
to learn the exact available information.
For example, LineSeries
receives three extra parameters:
series
| reference to the series itself.x
| pointed data point X coordinate.y
| pointed data point Y coordinate.Related API:
'nearest-x'
, 'nearest'
, etc.).Function which builds ResultTable content.
Object itself
Set basis of solving data point nearest to a given location from this series.
Default configuration is 'nearest-x'
.
// Example, configure series cursor to snap to closest data point along both X and Y dimensions.
LineSeries.setCursorSolveBasis('nearest')
Related API:
String describing the desired solve behavior.
Disable automatic data cleaning.
// Example syntax, disable data cleaning.
series.setDataCleaning(undefined)
Data cleaning configuration.
Object itself for fluent interface.
Enable automatic data cleaning by minDataPointCount
configuration.
Specifying minDataPointCount
enables lazy cleaning of data that is outside view as long as the remaining data amount doesn't go below the configured threshold.
// Example syntax for specifying minDataPointCount
series.setDataCleaning({ minDataPointCount: 10000 })
Usage of minDataPointCount
is recommended in most common applications that require automatic data cleaning.
The actual value is often not very particular, just setting it above 0
to enable it is usually enough (lazy data cleaning of out of view data).
// Example, enable lazy data cleaning of out of view data.
series.setDataCleaning({ minDataPointCount: 1 })
Data cleaning configuration.
Object itself for fluent interface.
Set progressive data cleaning threshold.
This feature allows configuring automatic data cleaning in infinitely scrolling applications.
This feature is only intended for progressive data patterns!
To learn of LineSeries
data patterns, refer to LineSeriesOptions.dataPattern.
The data cleaning threshold is a position on a single Axis (either X or Y) of the series. All data that exists behind this threshold, can be cleaned at any convenient time by the rendering engine, releasing memory for more data.
The behavior of data cleaning threshold is based on the pattern
argument supplied to LineSeriesOptions.dataPattern:
'ProgressiveX'
-> data cleaning threshold is a position on X Axis. All data points whose X
coordinate is less than the threshold, can be cleaned.'RegressiveX'
-> data cleaning threshold is a position on X Axis. All data points whose X
coordinate is more than the threshold, can be cleaned.'ProgressiveY'
-> data cleaning threshold is a position on Y Axis. All data points whose Y
coordinate is less than the threshold, can be cleaned.'RegressiveY'
-> data cleaning threshold is a position on Y Axis. All data points whose Y
coordinate is more than the threshold, can be cleaned.Example usage:
const series = chart.addLineSeries({
dataPattern: {
// Specify progressive X data.
pattern: 'ProgressiveX'
}
})
// Setup progressive scrolling X Axis.
chart.getDefaultAxisX().setScrollStrategy(AxisScrollStrategies.progressive).setInterval(-1000, 0)
// Setup infinite data stream.
let x = 0
setInterval(() => {
series.add({ x, y: Math.random() * 100 })
x += 1
// Move data cleaning threshold dynamically behind series data to allow data cleaning of old data.
const dcThreshold = series.getXMax() - 1000
series.setDataCleaningThreshold(dcThreshold)
}, 1000 / 60)
Data cleaning threshold value or undefined
to disable data cleaning based on threshold.
Object itself.
Set highlight on mouse hover enabled or disabled.
Mouse interactions have to be enabled on the component for this to function as expected. See setMouseInteractions for more information.
True if highlighting on mouse hover, false if no highlight on mouse hover
Object itself for fluent interface.
Enable or disable forced highlighting of component
True for enabled and false for disabled
component itself for fluent interface
Configure automatic data cleaning by maxPointCount
.
This allows the cleaning of all excess data points that are outside view, so that after cleaning at least maxPointCount
data points are retained.
Essentially it configures the head length of a series.
// Example, progressive X line series with automatic data cleaning.
const series = ChartXY.addLineSeries({
dataPattern: {
pattern: 'ProgressiveX'
}
})
// Keep at least 1000 data points in series, otherwise excess out of view data can be cleaned for more memory.
.setMaxPointCount(1000)
// Setup automatically scrolling X Axis.
chart.getDefaultAxisX().setScrollStrategy(AxisScrollStrategies.progressive).setInterval(0, 1000)
// Continously stream data into series.
let x = 0
setInterval(() => {
const newDataPoints = []
for (let i = 0; i <= 10; i += 1) {
newDataPoints.push({ x: x + i, y: Math.random() * 100 })
}
x += newDataPoints.length
series.add(newDataPoints)
}, 1000 / 60)
For progressive LineSeries
, there is another way to enable automatic data cleaning: LineSeries.setDataCleaningThreshold.
Enabling automatic data cleaning is crucial in applications that run for a long time, or even forever, because it allows clearing memory for allocating new data points.
Configuration for automatic data cleaning by maxPointCount
.
If undefined or 0 is passed, automatic data cleaning by maxPointCount
will be disabled.
Object itself for fluent interface.
Set mouse interactions enabled or disabled. Disabling mouse-interactions will naturally prevent mouse-driven highlighting from ever happening.
Line series mouse interactions are disabled by default.
Specifies state of mouse interactions
Object itself for fluent interface
Sets the name of the Component updating attached LegendBox entries
Name of the Component
Object itself
Set stroke style of Series.
Example usage:
// Specified LineStyle
LineSeries.setStrokeStyle(new SolidLine({ thickness: 2, fillStyle: new SolidFill({ color: ColorHEX('#F00') }) }))
// Changed thickness
LineSeries.setStrokeStyle((solidLine) => solidLine.setThickness(5))
// Hidden must be done with dispose() method, emptyLine is not supported
Either a SolidLine object or a function, which will be used to create a new SolidLine based on current value.
Chart itself
Set stroke style of Series when it is highlighted. Highlighting is activated by placing mouse on top / touching Series (if mouse-interactions are not disabled), or by using setHighlighted() method.
Example usage:
// Specified LineStyle
LineSeries.setStrokeStyleHighlight(new SolidLine({ thickness: 2, fillStyle: new SolidFill({ color: ColorHEX('#F00') }) }))
// Changed thickness
LineSeries.setStrokeStyleHighlight((solidLine) => solidLine.setThickness(5))
// Hidden must be done with transparentLine, emptyLine is not supported
LineSeries.setStrokeStyleHighlight(transparentLine)
// Automatic
LineSeries.setStrokeStyleHighlight(undefined)
Either a SolidLine object or a function, which will be used to modify current value or undefined for automatic value based on normal style.
Chart itself
Solves the nearest datapoint to a given coordinate on screen.
Location on screen
Undefined or data-structure for positioning of cursors
Solves the nearest datapoint to a given coordinate on a screen from a specific segment.
Location on screen
Segment to solve from
Undefined or data-structure for positioning of cursors
Series type for visualizing a list of Points (pair of X and Y coordinates), with a continuous stroke.
LineSeries
is optimized for massive amounts of data - here are some reference specs to give an idea:Creating LineSeries:
LineSeries
are created with ChartXY.addLineSeries method.Some properties of
LineSeries
can only be configured when it is created. These arguments are all optional, and are wrapped in a single object parameter:// Example, const lineSeries = ChartXY.addLineSeries({ // Specify non-default X Axis to attach series to. xAxis: myNonDefaultAxisX })
To learn about available properties, refer to LineSeriesOptions.
Frequently used methods:
dispose
| restoreLineSeries mouse interactions:
Contrary to other features,
LineSeries
mouse interactions are disabled by default since version 3.0.1.If mouse interactions are required, you need to enable them with LineSeries.setMouseInteractions. With mouse interactions enabled, using a data pattern is heavily recommended, especially with large data amounts.
Line Series
mouse interactions function significantly faster with a data pattern.To learn of
LineSeries
data patterns, refer to LineSeriesOptions.dataPattern.Additionally,
LineSeries
mouse interactions do not work when the series is placed on a logarithmic axis.These issues will be resolved in the immediate future (2021) until all interactions work as expected.