ECharts - 坐标轴刻度数值处置惩罚

打印 上一主题 下一主题

主题 984|帖子 984|积分 2954

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
写图表时,Y轴的数值过大,不太可能直接展示,这时候就得简写了,大概百分比展示的也要处置惩罚,如下图:


  1. yAxis: {
  2.    type: 'value',
  3.    // Y轴轴线
  4.    axisLine: { show: false },
  5.    // 刻度线
  6.    axisTick: { show: false },
  7.    // 轴刻度值
  8.    axisLabel: {
  9.      interval: 0, //坐标轴值与坐标轴间距
  10.      rotate: 0, //旋转角度
  11.    
  12.      // 值格式化 (toBMK函数 处理 Y轴数字值)
  13.      formatter(val) {
  14.        return `${toBMK(val)}${option.series[0].data[0].indexOf('%') > -1 ? '%' : ''}`;
  15.      },
  16.    },
  17. }
复制代码
红框圈起来的数值表示如下:
1K1000
1M1000,000
1B 1000,000,000
1KB1000,000,000,000





toBMK函数:
  1. export function toBMK(value) {
  2.   const vblValue = Math.abs(value);
  3.   const newValue = ['', '', ''];
  4.   let fr = 1000;
  5.   let num = 3;
  6.   while (vblValue / fr >= 1) {
  7.     fr *= 10;
  8.     num += 1;
  9.   }
  10.   if (num <= 4) {
  11.     newValue[1] = 'K';
  12.     newValue[0] = vblValue / 1000 >= 10
  13.     ? `${parseInt(vblValue / 1000, 10)}`
  14.     : (vblValue / 1000).toFixed(1);
  15.   } else if (num <= 7) {
  16.     const text1 = parseInt(num - 3, 10) / 3 > 1 ? 'M' : 'K';
  17.     const fm = text1 === 'K' ? 1000 : 1000000;
  18.     newValue[1] = text1;
  19.     newValue[0] = `${vblValue / fm}`;
  20.   } else {
  21.     let text1 = (num - 6) / 3 > 1 ? 'B' : 'M';
  22.     text1 = (num - 9) / 3 > 1 ? 'KB' : text1;
  23.     let fm = 1;
  24.     if (text1 === 'M') {
  25.       fm = 1000000;
  26.     } else if (text1 === 'B') {
  27.       fm = 1000000000;
  28.     } else if (text1 === 'KB') {
  29.       fm = 1000000000000;
  30.     }
  31.     newValue[1] = text1;
  32.     newValue[0] = `${parseInt(vblValue / fm, 10)}`;
  33.   }
  34.   if (vblValue < 1000) {
  35.     newValue[1] = '';
  36.     newValue[0] = `${vblValue}`;
  37.   }
  38.   return `${value < 0 ? '-' : ''}${newValue.join('')}`;
  39. }
复制代码
Y轴yAxis的属性,数值格式化,对应的大数值就会转换为简写,图表看起来美观,简明一些。





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表