作者:再见傻瓜傻瓜_299 | 来源:互联网 | 2023-01-27 10:41
只是想知道是否有任何方法可以使用chart.js为y轴设置水平条标签.以下是我设置图表的方法:
使用Javascript:
var ctx = document.getElementById('chart').getContext("2d");
var optiOns= {
layout: {
padding: {
top: 5,
}
},
responsive: true,
animation: {
animateScale: true,
animateRotate: true
},
};
var opt = {
type: "horizontalBar",
data: {
labels: label,
datasets: [{
data: price,
}]
},
options: options
};
if (chart) chart.destroy();
chart= new Chart(ctx, opt);
chart.update();
正如大家所看到的,第一个和第三个标签太长而且被切断了.有没有办法让标签成为多行?
提前致谢!
1> ɢʀᴜɴᴛ..:
您可以使用以下图表插件:
plugins: [{
beforeInit: function(chart) {
chart.data.labels.forEach(function(e, i, a) {
if (/\n/.test(e)) {
a[i] = e.split(/\n/);
}
});
}
}]
添加此项后跟图表选项
ᴜꜱᴀɢᴇ:
\n
在您想要添加换行符的位置添加新的行符号()到您的标签.
ᴅᴇᴍᴏ
var chart = new Chart(ctx, {
type: 'horizontalBar',
data: {
labels: ['Jan\n2017', 'Feb', 'Mar', 'Apr'],
datasets: [{
label: 'BAR',
data: [1, 2, 3, 4],
backgroundColor: 'rgba(0, 119, 290, 0.7)'
}]
},
options: {
scales: {
xAxes: [{
ticks: {
beginAtZero: true
}
}]
}
},
plugins: [{
beforeInit: function(chart) {
chart.data.labels.forEach(function(e, i, a) {
if (/\n/.test(e)) {
a[i] = e.split(/\n/);
}
});
}
}]
});