npm install fusioncharts --save npm install react-fusioncharts --save
chartWithParameters.tsx
import React from 'react'; import LinearChart from './linearChart'; class ChartWithParameters extends React.PureComponent { render() { return ( <LinearChart belowAverageValue={"3"} averageValue={"7"} highValue={"8"} existingValue={"5"} /> ); } } export default ChartWithParameters;
linearChart.tsx
import React from 'react'; import ReactFC from 'react-fusioncharts'; import FusionCharts from 'fusioncharts'; import Widgets from 'fusioncharts/fusioncharts.widgets'; ReactFC.fcRoot(FusionCharts, Widgets); interface IOwnProps { belowAverageValue: string; averageValue: string; highValue: string; existingValue: string; } type IProp = IOwnProps; class LinearChart extends React.PureComponent<IProp> { render() { const linearChartConfigs = { type : 'hlineargauge', width : '700', height : '150', dataFormat : 'json', dataSource : { chart: { caption: "Example Flow Chart", bgColor: '#f7fcff', upperLimit: this.props.highValue, chartTopMargin: '20', chartBottomMargin: '20', valueFontSize: '12', gaugeFillMix: '{light-30}', showValue: '1', majorTMNumber: '11', majorTMColor: '#1e5779', showBorder: '0', }, colorRange: { color: [ { maxValue: this.props.averageValue, code: '#FFC533', label: "averageValue", }, { maxValue: this.props.belowAverageValue, code: '#F2726F', label: "belowAverageValue", }, { maxValue: this.props.highValue, code: '#62B58F', label: "highValue", }, ], }, pointers: { pointer: [ { value: this.props.existingValue, showValue: '0', radius: '10', bgColor: '#6400ff', BorderColor: '#6400ff', }, ], }, trendPoints: { point: [ { startValue: this.props.existingValue, endValue: this.props.highValue, thickness: '1', markerColor: '#0075c2', markerBorderColor: '#666666', markerRadius: '5', alpha: '30', displayValue: ' ', }, { startValue: this.props.averageValue, thickness: '1', useMarker: '1', markerColor: '#87dc9', markerBorderColor: '#fff', markerRadius: '5', displayValue: ('average' + '<br/>' + 'count:' + this.props.averageValue + '<br/>'), }, { startValue: this.props.belowAverageValue, thickness: '1', useMarker: '1', markerColor: '#f5be416', markerBorderColor: '#fff', markerRadius: '5', displayValue: ('below average' + '<br/>' + 'count:' +this.props.belowAverageValue + '<br/>'), }, ], }, }, }; return <ReactFC {...linearChartConfigs} />; } } export default LinearChart;
references:
https://www.fusioncharts.com/react-charts
https://www.fusioncharts.com/charts/gauges/linear-scale-gauge