类似的问题在过去也曾被问过,但最终是针对较旧版本的Chart.js。这些问题的公认答案不起作用。我有一个类似的图表:
此图表的代码如下:
new Chart(
document.getElementById("chart-01"), {
type: 'bar',
data: {
labels: ["Test loooooong 1", "Test loooooong 2", "Test loooooong 3"],
datasets: [{ data: [574.48, 140.93, 64.37]}]
},
options: {
scales: {
y: {
ticks: {
callback: function(value) {
return '$ ' + value;
}
}
},
// x : {
// ticks : {
// callback : function(value, index, ticks) { return value.split(0,8)+'...';}
// }
// }
},
plugins: {
legend: {
display: false
}
}
}
}
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.2.1/chart.umd.js" integrity="sha512-vCUbejtS+HcWYtDHRF2T5B0BKwVG/CLeuew5uT2AiX4SJ2Wff52+kfgONvtdATqkqQMC9Ye5K+Td0OTaz+P7cw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<canvas id="chart-01" width="500" height="600"></canvas>
我尝试截断x轴上8个字符后的名称,并添加一个'...',因此,如果我使用注解代码块:
x : {
ticks : {
callback : function(value, index, ticks) { return value.split(0,8)+'...';}
}
}
我收到错误消息:
- 未捕获(承诺中)的TypeError:值。split不是函数**
同样,如果我只使用值,而不使用分割,我会得到数字,但不会得到标签名称。
这些链接指向对我不起作用的解决方案。
https://stackoverflow.com/a/39537545/3408158https://stackoverflow.com/a/44418430/3408158
我哪里做错了?
1条答案
按热度按时间ebdffaop1#
要获取/更改标签的值,必须使用函数
getLabelForValue
。split
是不正确的函数,您需要使用substring
。