react-smoothie
React wrapper for Smoothie Chart.
Install
npm install react-smoothie --save
Usage
var SmoothieComponent = require('react-smoothie').default;
var TestComponent = React.createClass({
// ...
render: function() {
return <SmoothieComponent ref="chart" width="1000" height="300" />;
},
componentDidMount: function() {
var ts1 = this.refs.chart.addTimeSeries({
strokeStyle: 'rgba(0, 255, 0, 1)',
fillStyle: 'rgba(0, 255, 0, 0.2)',
lineWidth: 4,
});
var ts2 = this.refs.chart.addTimeSeries({
strokeStyle: 'rgba(255, 0, 0, 1)',
fillStyle: 'rgba(255, 0, 0, 0.2)',
lineWidth: 4,
});
this.dataGenerator = setInterval(function() {
var time = new Date().getTime();
// Generate times slightly in the future
time += 1000;
ts1.append(time, Math.random());
ts2.append(time, Math.random());
}, 500);
},
componentWillUnmount: function() {
clearInterval(this.dataGenerator);
}
});
Props
SmoothieComponent's props are all passed as the options object to Smoothie Chart's constructor.
<SmoothieComponent ref='chart' width={1000} height={300} interpolation='step' />;
Extra
Three extra props can be used:
width
Control the width of the <canvas> used.
default: 800
height
Control the height of the <canvas> used.
default: 200
streamDelay
default: 0 (ms)
Delay the displayed chart. This value is passed after the component mounts as the second argument to SmoothieChart.streamTo.
Responsive charts
Experimental support for responsive charts was added in 0.3.0.
Simply set the responsive prop to true and canvas will use the full width of the parent container.
Height is still a controlled prop.
TimeSeries
The TimeSeries object from Smoothie Chart is exposed via the addTimeSeries() function.
The optional first argument of addTimeSeries() gets passed as the options to the TimeSeries constructor.
The last argument of addTimeSeries() gets passed as the options argument of SmoothieChart.addTimeSeries().
var ts = this.refs.chart.addTimeSeries({/* Optional TimeSeries opts */},{/* Chart.addTimeSeries opts */})
ts.append(new Date().getTime(), Math.random());
Test
Run yarn dev to start the Webpack Dev Server and open the page on your browser.