找到ucharts里面的u-charts.js。
Y轴的话找到drawYAxis方法。然后找到方法里面绘制文字的context.fillText方法。先把这个代码注释掉,然后加上下面代码
let labelLines = item.split('\n');
let currentY = pos + yAxisFontSize / 2 - 3 * opts.pix;
labelLines.forEach((line, index) => {
// 绘制每一行标签
context.fillText(String(line), tmpstrat, currentY);
// 更新y坐标,实现换行效果
currentY += yAxisFontSize + (yAxisFontSize / 2 - 5);
});
// context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);
X轴的话找到drawXAxis方法。修改方法跟Y轴一致。
然后找到calYAxisData方法。搜索找到下面代码的位置
rangesFormatArr[i] = rangesArr[i].map(function(items,index) {
然后把这个代码修改成下面这样
rangesFormatArr[i] = rangesArr[i].map(function(items,index) {
items = yData.formatter(items,index,opts);
// 如果文字过长,只保留5个字符。其他进行换行处理
let font5 = items;
if(font5.length >5){
font5 = font5.slice(0,5);
}
yAxisWidthArr[i].width = Math.max(yAxisWidthArr[i].width, measureText(font5, yAxisFontSizes, context) + 5);
return items;
});
找到ucharts里面的config-ucharts.js。找到formatter参数。里面添加下面这段代码
"yAxisDemo3":function(val, index, opts){
let result = '';
for (let i = 0; i < val.length; i++) {
result += val[i];
if (i > 0 && (i+1) % 5 === 0) {
result += '\n';
}
}
return result;
}
上面就是修改ucharts源码信息。
然后引用的话,直接在opts里面的yAxis进行添加即可。
yAxis: {
data:[{
type:'categories',
format:'yAxisDemo3'
}]
}