是否可以向图表js添加自定义字体?

Sti*_*hof 5 javascript chart.js

我想在Chart JS中使用外部字体.有谁知道这是否可能?我通过文档搜索过,但我还没有找到解决方案.

tek*_*tiv 8

这确实是可能的.

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

var options = {
    // 'Raleway' is the name of the fond I imported from GoogleFonts
    defaultFontFamily: Chart.defaults.global.defaultFontFamily = "'Raleway'"
}
Run Code Online (Sandbox Code Playgroud)

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

一个完整的工作示例:

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
                }
            }]
        }
    }
});
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

  • @StijnWesterhof当然,看看MDN关于[`@ font-face`]的文档(https://developer.mozilla.org/en/docs/Web/CSS/@font-face)。然后,您只需要用您为导入字体赋予的名称(“ @ font-face”的“ font-family”属性)替换“ Indie Flower”(在“ Chart.defaults ...”中)即可。 (2认同)