uniapp使用ucharts修改Y、X轴标题超出换行

找到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'
  }]
}
相关推荐
星光一影16 小时前
悬赏任务平台/拉新地推系统源码
redis·mysql·小程序·php·uniapp·html5
笨笨狗吞噬者17 小时前
【uniapp】解决小程序分包下的json文件编译后生成到主包的问题
前端·uni-app
2501_9159184117 小时前
Fiddler抓包工具详解,HTTP/HTTPS抓包、代理设置与调试技巧一站式教程(含实战案例)
http·ios·小程序·https·fiddler·uni-app·webview
一匹电信狗18 小时前
【C++】哈希表详解(开放定址法+哈希桶)
服务器·c++·leetcode·小程序·stl·哈希算法·散列表
iOS阿玮18 小时前
AppStore卡审44小时的产品,重新提交后已经过审了。
uni-app·app·apple
QuantumLeap丶18 小时前
《uni-app跨平台开发完全指南》- 04 - 页面布局与样式基础
vue.js·微信小程序·uni-app
www_stdio19 小时前
微信小程序入门:从零构建一个 Blog 小程序
微信·微信小程序
inx17720 小时前
微信小程序开发实战:从结构到数据绑定的完整实现
javascript·微信小程序
2501_9159090620 小时前
iOS 发布 App 全流程指南,从签名打包到开心上架(Appuploader)跨平台免 Mac 上传实战
android·macos·ios·小程序·uni-app·cocoa·iphone
小禾青青21 小时前
uniapp开发ai对话app,使用百度语音识别用户输入内容并展示到页面上
人工智能·百度·uni-app·uniapp