@lg-charts/core v0.8.1
Core Chart Components
Library of composable charting components that provides a way to create interactive charts rendered on canvas.
Installation
Yarn
yarn add @lg-charts/coreNPM
npm install @lg-charts/coreBasic Chart Example
import { Chart, ChartGrid, ChartHeader, Line, XAxis, YAxis, type ChartStates } from '@lg-charts/core';
<Chart onZoomSelect={handleZoom} state={ChartStates.Unset}>
<ChartHeader title="My Chart" />
<ChartGrid vertical={false}>
<XAxis type="time" />
<YAxis type="value" formatter={(value) => `${value}GB`} />
<EventMarkerPoint
label='2024/01/04 (value 3)'
message='Critical event occurred'
position={[new Date(2020, 01, 04), 3]}
level='warning'
/>
<EventMarkerLine
label='2024/01/02'
message='Something happened of note'
position={new Date(2020, 01, 02)}
level='info'
/>
<ThresholdLine
position={3}
label='Value Limit'
value='3'
/>
<Line
name="Series 1"
data={[
[new Date(2020, 01, 01), 0],
[new Date(2020, 01, 02), 1],
[new Date(2020, 01, 03), 2],
[new Date(2020, 01, 04), 3],
[new Date(2020, 01, 05), 4],
]}
/>
<Line
name="Series 2"
data={[
[new Date(2020, 01, 01), 4],
[new Date(2020, 01, 02), 3],
[new Date(2020, 01, 03), 2],
[new Date(2020, 01, 04), 1],
[new Date(2020, 01, 05), 0],
]}
/>
</Chart>;Parent Components
Chart
Chart container component.
Props
| Name | Description | Type | Default |
|---|---|---|---|
state (optional) | The state of the chart. | ChartStates ('unset \| 'loading') | 'unset' |
groupId (optional) | Charts with the same groupId will have their tooltips synced across charts. | string | |
onChartReady (optional) | Callback to be called when chart is finished rendering. | () => void | |
onZoomSelect (optional) | Callback to be called when a zoom selection is made if zoomSelect is enabled. | (e: ZoomSelectionEvent) => void | |
zoomSelect (optional) | Enable zoom select (click and drag area selection) for either axis. | { xAxis?: boolean; yAxis?: boolean } | { xAxis: false, yAxis: false } |
Note: Callback passed to onZoomSelect callback receives the following ZoomSelectionEvent as an argument:
ZoomSelectionEvent = {
// present if xAxis is enabled
xAxis?: { startValue: number; endValue: number };
// present if yAxis is enabled
yAxis?: { startValue: number; endValue: number };
}Child Components
Line
Component that takes in data points and renders a single line on the chart.
Props
| Name | Description | Type | Default |
|---|---|---|---|
name | Unique name used to identify the series. Important note: If two lines have the same name, only one will be rendered. | string | |
data | Data array of tuples that represent x and y coordinates in the series. | Array<[string \| number \| Date, string \| number \| Date]> |
ChartHeader
Component for rendering a header in a chart.
Props
| Name | Description | Type | Default |
|---|---|---|---|
title | The title to display in the chart header. | string | |
showDivider (optional) | When true, renders a dividing line on top of header. Useful when stacking charts, such as in a ChartGroup. | boolean | |
headerContent (optional) | Content that will be rendered to the right of the title. Useful for adding components such as IconButton's that control functionality in the chart. | React.ReactNode |
ChartGrid
Component that displays grid lines on the chart.
Props
| Name | Description | Type | Default |
|---|---|---|---|
horizontal (optional) | Show horizontal grid lines. | boolean | true |
vertical (optional) | Show vertical grid lines. | boolean | true |
XAxis
Renders an x-axis.
Props
| Name | Description | Type | Default |
|---|---|---|---|
type | Type of axis. | 'log' \| 'time' \| 'value' | |
label (optional) | Label name to be rendered on the axis. | string | |
formatter (optional) | Callback function for formatting tick values. | (value: string, index: number) => string |
YAxis
Renders a y-axis.
Props
| Name | Description | Type | Default |
|---|---|---|---|
type | Type of axis. | 'log' \| 'time' \| 'value' | |
label (optional) | Label name to be rendered on the axis. | string | |
formatter (optional) | Callback function for formatting tick values. | (value: string, index: number) => string |
ChartTooltip
Renders a tooltip onto the chart.
Props
| Name | Description | Type | Default |
|---|---|---|---|
sort (optional) | Custom sort function, used to sort list of series. List will be sorted descending by value by default. | (seriesA: SeriesInfo, seriesB: SeriesInfo) => number | descending by default |
seriesNameFormatter (optional) | Callback function for formatting the name string for each series. | (name: string) => string \| ReactNode | |
seriesValueFormatter (optional) | Callback function for formatting the value string for each series. | (value: number \| string \| Date) => string \| ReactNode | |
headerFormatter (optional) | Callback function for formatting the header string. | (value: number \| string) => string \| ReactNode |
Note: SeriesInfo is of type { name: string; value: string | number | Date; }
EventMarkerLine
Renders a vertical line marker at a specific point on the x-axis to annotate an event.
Props
| Name | Description | Type | Default |
|---|---|---|---|
position | Position along the x-axis where the line should be placed. | string \| number | |
message | Additional message text shown in the tooltip when hovering. | string | |
label (optional) | Label text shown in the tooltip when hovering. | string | |
level (optional) | Visual style of the marker indicating its severity. | 'warning' \| 'info' | 'warning' |
EventMarkerPoint
Renders a point marker at specific coordinates to annotate an event.
Props
| Name | Description | Type | Default |
|---|---|---|---|
position | Coordinates where the point should be placed x, y. | [string \| number, string \| number] | |
message | Additional message text shown in the tooltip when hovering. | string | |
label (optional) | Label text shown in the tooltip when hovering. | string | |
level (optional) | Visual style of the marker indicating its severity. | 'warning' \| 'info' | 'warning' |
ThresholdLine
Renders a horizontal dashed line at a specific value on the y-axis to indicate a threshold.
Props
| Name | Description | Type | Default |
|---|---|---|---|
position | Position along the y-axis where the line should be placed. | number | |
value | Value text shown after the label in the tooltip when hovering. | string | |
label (optional) | Label text shown in the tooltip when hovering. | string |
7 months ago
7 months ago
7 months ago
12 months ago
8 months ago
8 months ago
8 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
10 months ago
11 months ago
11 months ago
10 months ago
10 months ago
11 months ago
9 months ago
9 months ago
10 months ago
9 months ago
10 months ago
8 months ago
9 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago