15👍
✅
To set more legends, you need to add multiple datasets. Each dataset will represent one legend and the legend‘s color will automatically be set according to the dataset‘s background color.
Chart.plugins.register({
beforeDraw: function(c) {
var legends = c.legend.legendItems;
legends.forEach(function(e) {
e.fillStyle = '#07C';
});
}
});
var canvas = document.getElementById('myChart');
var data = {
labels: ["January", "February", "March", "April", "May", "June"],
datasets: [{
label: "My First dataset",
backgroundColor: "rgba(255,99,132,0.4)",
hoverBorderColor: "rgba(255,99,132,1)",
data: [65, 59, 20, 81, 56, 55],
}, {
label: "My Second dataset",
backgroundColor: "rgba(25,25,255,0.4)",
hoverBorderColor: "rgba(255,99,132,1)",
data: [65, 59, 20, 81, 56, 55],
}]
};
var option = {
scales: {
xAxes: [{
stacked: true
}],
yAxes: [{
stacked: true,
gridLines: {
display: true,
color: "rgba(255,99,132,0.2)"
}
}]
}
};
var myBarChart = Chart.Bar(canvas, {
data: data,
options: option
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<canvas id="myChart" width="400" height="200"></canvas>
1👍
To do this in react-chartjs2
<Line
data={this.data}
options={this.options}
redraw={true}
plugins={[
{
beforeDraw(c) {
var legends = c.legend.legendItems;
legends[0].fillStyle = "#103362";
legends[1].fillStyle = "#3F80D8";
}
}
]}
/>
options = {
responsive: true,
maintainAspectRatio: false,
legend: {
labels: {
usePointStyle: true,
boxWidth: 9
}
}
}
Source:stackexchange.com