ECharts 图例文本对齐,告别长短不一!

ECharts 饼图图例格式化实战

效果图

实现

思路: 我们可以将图例文本划分为两个独立的区域:

  1. name 区域:固定宽度(例如 80px),所有名称左对齐。
  2. percent 区域:紧接在 name 区域之后显示,由于 name 宽度固定,所有百分比将从同一垂直位置开始,实现了整齐的左对齐。

关键代码实现:

javascript 复制代码
legend: {
    orient: 'vertical', // 垂直布局
    top: '12%',
    right: '0',
    itemWidth: 10,
    itemHeight: 10,
    icon: 'circle',
    textStyle: {
        fontSize: 12,
        color: '#666',
        // 核心:定义富文本样式
        rich: {
            name: {
                width: 80,      // 固定宽度
                align: 'left'   // 名称左对齐
            }
            // percent 区域不需要额外配置,使用默认样式即可
        }
    },
    formatter: function (name) {
        const item = pieChartData.find((d) => d.name === name);
        if (item) {
            const percent = ((item.value / pieTotal) * 100).toFixed(2) + '%';
            // 使用模板字符串 {样式名|内容} 应用 rich 样式
            return `{name|${name}}{percent|  ${percent}}`;
        }
        return name;
    }
}

效果:无论 name 是 4个还是6个字,它都会被限制在 80px 的框内。因此,所有的 percent 内容都会从几乎相同的 x 坐标位置开始,形成了完美的对齐效果。

相关推荐
Sayai1 天前
【无标题】ECharts 实现日志量异常检测:基线 ±Kσ 基带 + 灵敏度切换(Vue2 实战)
前端·javascript·echarts
Smile_ping1 天前
自定义tooltip,解决图表数据重叠,无法准确点击问题!
echarts·自定义tooltip
一颗烂土豆3 天前
ECharts 太平面?试试这款 Vue 3D 图表库
前端·vue.js·echarts
paopaokaka_luck8 天前
基于springboot3+vue3的美妆商城平台(AI问答、协同过滤算法、支付宝沙盒支付、物流快递api、Echarts图形化分析)
java·前端·spring boot·学习·maven·echarts
paopaokaka_luck9 天前
基于springboot3+vue3的音乐推荐系统(协同过滤算法、Echarts图形化分析)
前端·echarts
做好一个小前端14 天前
ECharts 折线图大数据量性能优化参考
前端·性能优化·echarts
paopaokaka_luck14 天前
基于springboot3+vue3的云南本土影视文旅推荐平台(协同过滤算法、Echarts图形化分析)
前端·spring boot·学习·算法·echarts·mybatis
paopaokaka_luck14 天前
基于springboot3+vue3的企业考勤管理系统(部门树递归、Echarts图形化分析)
开发语言·spring boot·学习·echarts·mybatis·需求分析·代码规范
paopaokaka_luck16 天前
基于springboot3+vue3的乡村医生诊疗管理系统(AI助手、协同过滤算法、webSocket实时聊天、Echarts图形化分析)
前端·网络·人工智能·spring boot·websocket·网络协议·echarts