Is there any way to change the font color and size of labels in Chartjs 3.0.0

Viewed 999

Using the chart.js 3.0.0 beta

It appears they have not yet implemented any way to change the font properties of the labels ( Volume and Month in the self-contained sample below )

I try a couple of methods but it seems like this is just not possible

To be clear it is the labels I want to change the color of - not the title or the datasets.

can anyone confirm this?


<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.0.0-beta.12/chart.js"></script>
 
</head>

<body>
    <div id="container" style='background-color:white' >
        <canvas id="canvas"></canvas>
    </div>
 
    <script>
            
window.onload = function() {

    var ctx = document.getElementById('canvas').getContext('2d');

    var chart = new Chart(ctx, {
        type: 'bar',
        data: {
            labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
            datasets: [{            
                data: [     50,     -90,        75,     40,     -100,       220,        11      ]   
            }]
        },
        options: {
            indexAxis: 'y',
            plugins: {
                    legend: {
                        display: false,
                        labels:{
                            fontSize: 20,
                            fontColor: 'red',
                        }
                    },
                    title: {
                        display: true,
                        text: 'Chart.js Horizontal Bar Chart'
                    },
            },
            scales: {
                    x: {
                        display: true,
                        scaleLabel: {
                            display: true,
                            labelString: 'Volume',
                            fontColor:'#666',
                            fontSize: 20,
                            fontStyle: 'italic'
                        }
                    },
                    y: {
                        display: true,
                        scaleLabel: {
                            display: true,
                            labelString: 'Month',
                            fontColor:'#666',
                            fontSize: 20,
                            fontStyle: 'bold'
                        }
                    }
            }           
        }
    }); 
};
             
    </script>
</body>
</html>

1 Answers

The propertys have changed in naming in v3 see migration guide (https://www.chartjs.org/docs/master/getting-started/v3-migration) and the font docs (https://www.chartjs.org/docs/master/general/fonts) for more info:

Example:

var options = {
  type: 'line',
  data: {
    labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
    datasets: [{
        label: '# of Votes',
        data: [12, 19, 3, 5, 2, 3],
        borderWidth: 1
      },
      {
        label: '# of Points',
        data: [7, 11, 5, 8, 3, 7],
        borderWidth: 1
      }
    ]
  },
  options: {
    plugins: {
      legend: {
        labels: {
          font: {
            size: 20
          },
          color: 'red',
        }
      }
    }
  }
}

var ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
<body>
  <canvas id="chartJSContainer" width="600" height="400"></canvas>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.0.0-beta.12/chart.js" integrity="sha512-KTkh8VBBRBzCXlXeR49sBgmLkU6CE7li47A70NR+yYMKGEDOfQR4L2PEQ3KRXeET8j1U+gSRpRjkAS4tQjTGag==" crossorigin="anonymous"></script>
</body>

Related