P粉3161107792023-08-30 00:43:35
If you only want to change the text of the y-axis labels, you can change them completely by setting the function options.scales.y.ticks.callback
, see the documentation and API Reference for details. In your case, to make negative values read as positive, you can use:
callback: function(val){ return this.getLabelForValue(Math.abs(val)); }
or
callback: function(val){ return this.getLabelForValue(val).replace(/^-/, ''); }
var ctx = document.getElementById('chart1');
var MONTHS = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
];
var barChartData = {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [
{
label: "Dataset 1",
backgroundColor: 'rgba(255, 201, 14, 1)',
borderColor: 'rgba(255, 201, 14, 1)',
borderWidth: 1,
data: [
10,
20,
30,
40,
50
],
},
{
label: "Dataset 2",
backgroundColor: 'rgba(255, 201, 14, 1)',
borderColor: 'rgba(255, 201, 14, 1)',
borderWidth: 1,
data: [
-100,
-200,
-300,
-400,
-500
],
},
],
};
new Chart(ctx, {
type: "bar",
data: barChartData,
options: {
responsive: true,
legend: {
position: "top",
},
title: {
display: true,
text: "Chart.js Bar Chart",
},
scales:{
y: {
ticks: {
callback: function(val){
return this.getLabelForValue(Math.abs(val));
// or: //return this.getLabelForValue(val).replace(/^-/, '');
},
}
}
},
},
});
<canvas id="chart1" style="height:500px"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.1.2/chart.umd.js"
integrity="sha512-t41WshQCxr9T3SWH3DBZoDnAT9gfVLtQS+NKO60fdAwScoB37rXtdxT/oKe986G0BFnP4mtGzXxuYpHrMoMJLA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>