ChartJS默认字体大小修改无效:设置Chart.defaults.global.defaultFontSize未生效求助
问题:Chart.js 修改默认字体大小不生效
我尝试把Chart.js图表的默认字体大小从默认的40px改成14px,设置了Chart.defaults.global.defaultFontSize = 14;之后却没有任何变化。以下是我的代码,希望有人能帮忙看看问题出在哪,提前感谢!
Chart.defaults.global.defaultFontSize = 14; let chart = new Chart(context, { type: 'line', options:{ animation: { onComplete: function(e) { angularContext.onChartRendered(); } }, layout: { padding: { left: 20, right: 40, top: 20, bottom: 60 } }, title: { text: 'Bonello Distribution', }, legend: { display: false, } }, data: { labels: graphData.labels, datasets: [ { label: 'My First dataset', data: graphData.values, borderColor: "#3e95cd", fill: false } ], }, });
解决方案
这个问题大概率是Chart.js版本差异导致的配置路径变更!
从Chart.js v3.x版本开始,global全局配置节点被移除了,默认字体大小的配置路径变成了Chart.defaults.font.size。你原来的写法在v3+版本里自然不会生效,改成下面这样试试:
// 适配Chart.js v3.x及以上版本 Chart.defaults.font.size = 14;
如果你的项目还在使用v2.x版本,那原写法理论上是有效的,但可以排查这两个小细节:
- 确保
Chart.defaults.global.defaultFontSize = 14;这段代码在创建Chart实例之前执行,别把它放在实例化代码之后 - 检查有没有局部配置覆盖了全局默认值,比如标题、坐标轴标签等单独设置了字体大小,局部配置会优先于全局配置生效
另外,如果你只想给当前这张图表单独设置字体大小,也可以直接在图表的options里配置,不用修改全局默认值:
let chart = new Chart(context, { type: 'line', options:{ // 给当前图表单独设置默认字体大小(v3+) font: { size: 14 }, animation: { onComplete: function(e) { angularContext.onChartRendered(); } }, // ... 其他原有配置 }, // ... 数据部分 });
这样应该就能解决字体大小不生效的问题啦!
内容的提问来源于stack exchange,提问作者Sjos Sivlingworkz
相关产品推荐
相关产品推荐

