是否可以在图表js中添加自定义字体

Is it possible to add a custom font to chart js?

本文关键字:添加 自定义 字体 js 是否      更新时间:2023-09-26

我想在用图表JS制作的图表中使用外部字体。有谁知道这是否可能?我已经通过文档进行了搜索,但还没有找到解决方案。

这确实是可能的。

考虑到您已经导入了字体(例如
从GoogleFonts),您只需在图表选项中编辑defaultFontFamily属性,如下所示:

var options = {
    // 'Raleway' is the name of the fond I imported from GoogleFonts
    defaultFontFamily: Chart.defaults.global.defaultFontFamily = "'Raleway'"
}

有关 defaultFontFamily 属性的更多信息,请参阅 Lolka 的答案。

一个完整的工作示例:

Chart.defaults.global.defaultFontFamily = "Indie Flower";
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
        datasets: [{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2, 3],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.6/Chart.min.js"></script>
<link href='https://fonts.googleapis.com/css?family=Indie+Flower' rel='stylesheet' type='text/css'>
  
<canvas id="myChart" width="400" height="400"></canvas>

Google Chart.JS custom font的第一个结果

从文档:

有4种特殊的全局设置可以更改所有字体 在图表上。这些选项位于 Chart.defaults.global 中。

defaultFontFamily String "'Helvetica Neue', 'Helvetica', 'Arial', 无衬线字体" 所有文本的默认字体系列