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'
  }]
}
相关推荐
小码哥06812 小时前
Java医院陪诊系统陪护系统陪诊小程序,三端齐全可定制
大数据·小程序·陪诊陪护·陪诊小程序·陪护系统·陪诊系统·陪护小程序
连涨- AI脑波英语13 小时前
机构小程序对接词汇课程,测试账号怎样与正式学生账号隔离?
小程序·接口安全·脑机单词速记
liangshanbo121517 小时前
前端面试题:微信小程序怎么优化性能?
前端·微信小程序·notepad++
扶风ff18 小时前
练题簿在线免费刷题:题目导入、章节管理、Excel 与 Word 导出,让题库更好用
学习·小程序·word·excel
格数致用19 小时前
03- Luckysheet与Vue3+Electron集成实战指南
electron·vue3·luckysheet
拖孩19 小时前
一个全程 AI 写的小程序「厨菜记」,上线 20 天跑通流量主,收入几块钱,开心得不行
前端·后端·微信小程序
程序猿_极客20 小时前
【免费】分享一套优质的基于微信小程序的音乐播放器系统的设计与实现,源码+文档+视频详解(讲解)
微信小程序·小程序·springboot·音乐播放器小程序·音乐管理系统
愚公搬代码20 小时前
【愚公系列】《微信小程序项目实战(AI编程+视频图解)》015-测试
微信小程序·小程序·ai编程
码艺-Alimjan2 天前
Tauri 网站To桌面应用实战总结
前端·javascript·vue
小蒜学长2 天前
基于微信小程序的遇见咖啡店点餐系统设计与实现(代码+数据库+LW)
java·spring boot·后端·微信小程序·咖啡店点餐系统