echarts常见问题记录(持续更新)

resize实时改变图表尺寸

在容器大小发生改变时,实时改变图表尺寸

  • 页面只有单个图表 :直接用resize函数
  • 页面有多个图表 : 用addEventListener
    window.addEventListener("resize", () => {
    	myEcharts.resize();
    });
    

formatter解析html标签

tooltip的formatter 可以解析html标签

	formatter: param => {
		const res = `<div style='color: red'> ${param.name} </div>`;
		return res;
	}

图表布局位置调整

图表布局位置调整

  • 一般用 grid

    	grid: [{
            left: '10%',
            bottom: '10%',
            top: '10%',
            right: '10%'
        }],
    
  • pie饼图

    	radius : [ '30%', '50%' ],//内外圆的大小
        center : [ '45%', '60%' ],//距离左右,上下距离的百分比
    
  • map地图

    	layoutCenter: ['48%', '50%'],//距离左右,上下距离的百分比
        layoutSize:'145%',//map百分比大小
    

bar/line坐标轴name过长处理方案

  • name较短的: 旋转角度rotate倾斜显示
  • 溢出省略…鼠标悬浮显示: 可以写个鼠标悬浮事件+弹窗,让鼠标悬浮时显示完整name(注: triggerEvent: true
  • 折行拼接:超出几个字后就折行显示。举个小栗子(看具体业务做适当修改)。
    	formatter: param => {
          const nameFold = (name, sub) => {
            if (!name.length) return "";
            const strLen = name.length;
            if (strLen > sub) {
              let sname = "";
              const num = Math.ceil(strLen / sub);
              for (let i = 0; i < num; i++) {
                sname +=
                  name.substr(
                    i * sub,
                    ["(", ")", "、"].some(i => name.includes(i))
                      ? sub
                      : (i + 1) * sub
                  ) + "<br/>";
              }
              return sname;
            } else {
              return name + "<br/>";
            }
          };
          // param.name 每20个字折行
          return nameFold(param.name, 20) + param.value;
        }
    

之后想到再补充…

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值