import React from 'react';
import FusionCharts from 'fusioncharts';
import charts from 'fusioncharts/fusioncharts.charts';
import ReactFC from 'react-fusioncharts';
// add this line if you have licence: FusionCharts.options['creditLabel'] = false;
charts(FusionCharts);
interface IOwnProps {
myData: any;
}
type IProp = IOwnProps;
class StackedChart extends React.PureComponent<IProp> {
constructor(props: IProp) {
super(props);
this.getToolText = this.getToolText.bind(this);
}
getToolText(label: string, customData: string) {
return (
`${label}` +
' | ' +
`${customData}` +
'<br/>' +
'<div style="width:110px;color:red;margin-left:1px;margin-top:2px;"> ' +
'Custom Tooltip' +
'</div>'
);
}
render() {
// const { myData } = this.props;
const dataSource = {
chart: {
theme: 'fusion',
bgColor: '#FFFFFF',
alternateHGridColor:'#FFFFFF',
formatNumberScale: 1,
numberPrefix: '$',
numDivLines: 6,
textOutline:0,
/* decimalSeperator: ',',
decimals: 0,
forceDecimals: 0,
yAxisValueDecimals: 0,*/
divLineThickness: 1,
divLineAlpha: 10,
useRoundEdges: 0,
usePlotGradientColor: 0,
showSum: '1',
showLegend: 1,
showcanvasborder: 0,
showPlotBorder: 0,
baseFont:'Arial, "Helvetica Neue", Helvetica, sans-serif',
baseFontSize: 14,
baseFontColor: '#000000',
labelFont:'Arial, "Helvetica Neue", Helvetica, sans-serif',
labelFontSize: 14,
labelFontColor: '#000000',
valueFont:'Arial, "Helvetica Neue", Helvetica, sans-serif',
valueFontSize: 14,
valueFontColor: '#000000',
outCnvBaseFont:'Arial, "Helvetica Neue", Helvetica, sans-serif',
outCnvBaseFontSize: 14,
outCnvBaseFontColor: '#000000',
legendItemFont:'Arial, "Helvetica Neue", Helvetica, sans-serif',
legendItemFontSize: 14,
legendItemFontColor: '#000000',
legendIconScale: 1,
legendBorderThickness: 0,
legendShadow: 0,
},
categories: [
{
category: [
{
label: 'Label1',
},
{
label: 'Label2',
},
{
label: 'Label3',
},
{
label: 'Label4',
},
],
},
],
dataset: [
{
seriesname: 'Serie 1',
showValues: false,
color: '#003f5ec',
data: [
{
value: 1000,
toolText: this.getToolText(
'$label',
'my custom text 1'
),
},
{
value: 2000,
toolText: this.getToolText(
'$label',
'my custom text 2'
),
},
{
value: 50,
toolText: this.getToolText(
'$label',
'my custom text 3'
),
},
{
value: 3000,
toolText: this.getToolText(
'$label',
'my custom text 4'
),
},
],
},
{
seriesname: 'Serie 2',
showValues: false,
color: '#ffe600',
data: [
{
value: 4000,
toolText: this.getToolText(
'$label',
'my custom text 5'
),
},
{
value: 2000,
toolText: this.getToolText(
'$label',
'my custom text 6'
),
},
{
value: 800,
toolText: this.getToolText(
'$label',
'my custom text 7'
),
},
{
value: 6600,
toolText: this.getToolText(
'$label',
'my custom text 8'
),
},
],
},
],
}
return (
<div id="my-chart-container">
<ReactFC
type="stackedcolumn2d"
width="100%"
height="250"
dataFormat="JSON"
dataSource={dataSource}
/>
</div>
);
}
}
export default StackedChart;