I'm trying to implement a pie chart in my web application and i found this as a good source.
https://github.com/reactjs/react-chartjs
But it does not provide the way to give chartData
and chartOptions
inorder to make it work. How can i do this?
my code
import React, {Component} from 'react';
var LineChart = require("react-chartjs").Line;
class PieChart extends Component {
constructor() {
super();
}
render() {
return (
<div className="">
<LineChart data={chartData} options={chartOptions} width="600" height="250"/>
</div>
);
}
}
export default PieChart;
I get these errors
12:34 error 'chartData' is not defined no-undef
12:54 error 'chartOptions' is not defined no-undef
You need to initialise chatData
and chartOptions
and also react-chartjs
has a dependency on chartjs
, so you need to install that too
npm install --save chart.js@^1.1.1
Code
import React, {Component} from 'react';
import Chartjs from 'chart.js'
var LineChart = require("react-chartjs").Line;
class PieChart extends Component {
constructor() {
super();
}
render() {
var chartOptions: {
// Boolean - If we should show the scale at all
showScale: true,
// Boolean - Whether to show a dot for each point
pointDot: true,
showLines: false,
title: {
display: true,
text: 'Chart.js Line Chart'
},
legend: {
display: true,
labels: {
boxWidth: 50,
fontSize: 10,
fontColor: '#bbb',
padding: 5,
}
}
}
var chartData= {
labels: ['1', '2', '3', '4'],
datasets: [
{
label: 'Current lag',
fill: false,
lineTension: 0.1,
backgroundColor: "rgba(75,192,192,0.4)",
borderColor: "rgba(75,192,192,1)",
borderCapStyle: 'butt',
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
data: [50, 35, 60, 67]
}
]
}
return (
<div className="">
<LineChart data={chartData} options={chartOptions} width="600" height="250"/>
</div>
);
}
}
export default PieChart;
I use chart.js in my project and it works really well. You need install chart.js module via npm
npm install chart.js --save
Then import it to your component file
import Chart from 'chart.js'
And it provides 'data' field in its function for you to populate data.
let myDoughnutChart = new Chart(document.getElementById('my_chart'), {
type: 'pie',
data: {
datasets: [{
data: [percentage, 100 - percentage],
backgroundColor: ['rgba(82,199,197,1)', '#E5E5E5'],
borderWidth: 1
}]
},
options: {
tooltips: {
enabled: false
}
}
});
For more details please check the their doc (http://www.chartjs.org/docs/)