Nic*_*nko 2 javascript charts chart.js
我在页面上有一系列图表叫做charts.这是我试图运行以进行字体更改的代码:
for(var x in charts){
charts[x].options.scales.yAxes[0].ticks.fontSize = 20;
charts[x].options.scales.xAxes[0].ticks.fontSize = 20;
charts[x].update();
}
Run Code Online (Sandbox Code Playgroud)
我知道我正确地到达了fontSize属性,因为在控制台中它向我返回正确的字体大小.更改fontSize后,它返回正确的.但是,由于某种原因,实际的图表没有更新.该chart.update命令仅用于更新数据吗?
注意:这个问题与使用JS动态更新图表的其他问题不重复,因为我使用的ChartJS版本是2.7.
在ChartJS 2.7.0或更高版本中,仅通过设置属性来(动态地)更改(动态)图表轴的字体大小将不会实际应用于图表.它只会为新设置的字体大小添加空格到轴'.fontSizeticks
为了正确更改图表轴'的刻度(适用于图表),您需要fontSize为minor对象(下ticks)设置属性,如下所示:
for (var x in charts) {
// set/change the actual font-size
charts[x].options.scales.xAxes[0].ticks.minor.fontSize = 20;
charts[x].options.scales.yAxes[0].ticks.minor.fontSize = 20;
// set proper spacing for resized font
charts[x].options.scales.xAxes[0].ticks.fontSize = 20;
charts[x].options.scales.yAxes[0].ticks.fontSize = 20;
// update chart to apply new font-size
charts[x].update();
}
Run Code Online (Sandbox Code Playgroud)
ᴡᴏʀᴋɪɴɢᴡᴏʀᴋɪɴɢxᴀᴍᴘʟᴇ⧩
var myChart1 = new Chart(ctx1, {
type: 'line',
data: {
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
datasets: [{
label: 'Profit',
data: [30, 10, 40, 20, 50],
backgroundColor: 'rgba(61, 208, 239, 0.2)',
borderColor: 'rgba(61, 208, 239, 0.6)'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
var myChart2 = new Chart(ctx2, {
type: 'line',
data: {
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
datasets: [{
label: 'Loss',
data: [50, 20, 40, 10, 30],
backgroundColor: 'rgba(239, 92, 61, 0.2)',
borderColor: 'rgba(239, 92, 61, 0.6)'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
var charts = [myChart1, myChart2];
function changeFontSize() {
for (var x in charts) {
// set/change the font-size
charts[x].options.scales.xAxes[0].ticks.minor.fontSize = 20;
charts[x].options.scales.yAxes[0].ticks.minor.fontSize = 20;
// set proper spacing for resized font
charts[x].options.scales.xAxes[0].ticks.fontSize = 20;
charts[x].options.scales.yAxes[0].ticks.fontSize = 20;
// update chart to apply new font-size
charts[x].update();
}
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.0/Chart.min.js"></script>
<button onclick="changeFontSize();">Change Font Size</button>
<canvas id="ctx1"></canvas>
<canvas id="ctx2"></canvas>Run Code Online (Sandbox Code Playgroud)