react-dynamic-charts
A React library for creating animated charts visualizations based on dynamic data.
Install
npm install --save react-dynamic-charts
Usage
import React, { Component } from 'react';
import { LiveBarChart } from 'react-dynamic-charts';
import 'react-dynamic-charts/dist/index.css'; // Don't forget to import the styles
class App extends Component {
state = {
data: [
// ...
]
};
render () {
return (
<LiveBarChart
data={this.state.data}
/>
)
}
}
Props
Property | Type | Default | Description |
---|---|---|---|
data |
array | [] | An array of objects that contain the data of the chart (see section below). |
baseline |
number | null | If you want the chart to have a baseline, add its number here. Could be useful for charts that include negative values. |
iterationTimeout |
number | 200 | Number of milliseconds you want between iterations. |
startAutomatically |
boolean | true | Whether the visualization should start running automatically. Default is true . |
startRunningTimeout |
number | 0 | Number of milliseconds you want before running the visualization. |
onRunStart |
function | null | A callback function that being called once the visualization starts. |
onRunEnd |
function | null | A callback function that being called once the visualization ends. |
showTitle |
boolean | true | Whether you want to show each iteration's title. |
barHeight |
number | 50 | The height (in pixels) of each bar item. |
showStartButton |
boolean | false | Show a start button that triggers the animation. |
startButtonText |
string | 'Start' | The text that will appear in the start button. |
mainWrapperStyles |
object | {} | Styles object for the component's main wrapper. |
chartWrapperStyles |
object | {} | Styles object for the chart wrapper. |
baselineStyles |
object | {} | Styles object for the baseline element. |
iterationTitleStyles |
object | {} | Styles object for the title element. |
labelStyles |
object | {} | Styles object for the chart's labels. |
startButtonStyles |
object | {} | Styles object for the start button. |
Data
The data
property is expected to be an array of objects. Each object will present an iteration and will include the following fields:
Property | Type | Description |
---|---|---|
name |
string | The name of the iteration. |
values |
array | An array of data objects (see below). |
Each value in the values
array will contain the following properties:
Property | Type | Description |
---|---|---|
id |
string / number | A unique identifier for the item. Note that it should be consistent across all iterations. |
label |
string / React Node | The label of the item. |
value |
number | A numeric value of the item. |
color |
string / array | Set a fixed color for the item. Could be also an array of colors that will generate a gradient effect. By default, if not set, each item will get a random color. |
Here's an example of a data
object:
[
{
"name": "Round 1",
"values": [
{
"id": 1,
"label": "Test 1",
"value": 0,
"color": "red"
},
{
"id": 2,
"label": "Test 2",
"value": 0,
"color": ["yellow", "green"]
}
]
},
{
"name": "Round 2",
"values": [
{
"id": 1,
"label": "Test 1",
"value": 10,
"color": "red"
},
{
"id": 2,
"label": "Test 2",
"value": 5,
"color": ["yellow", "green"]
}
]
},
{
"name": "Round 3",
"values": [
{
"id": 1,
"label": "Test 1",
"value": 12,
"color": "red"
},
{
"id": 2,
"label": "Test 2",
"value": 21,
"color": ["yellow", "green"]
}
]
}
]