Vue 图例自定义

1 篇文章 0 订阅

1、代码

data(){
return{
    option3: {
        legend: {
          show: true,
          icon: "circle",
          itemWidth: 12,
          itemHeight: 12,
          orient: "vertical",
          right: "10%",
          bottom: "center",
          formatter: (name) => {
            this.initEcharts();
            let target = "";
            let total = 0;
            for (var i = 0; i < this.lengendData.length; i++) {
              total += this.lengendData[i].value;
              if (this.lengendData[i].name === name) {
                target = this.lengendData[i].value;
              }
            }
            var percent = ((target / total) * 100).toFixed(2);
            return `{a|${name}}  {b|${target}家}  {b|${percent}%}`;
          },
          textStyle: {
            rich: {
              a: {
                color: "#fff",
              },
              b: {
                color: "#e04a45",
              },
            },
          },
        },
        color: [
          "#b571fd",
          "#2b98fe",
          "#31dcfe",
          "#fc9424",
          "#ede933",
          "#ff894e",
          "#ffc545",
          "#e27f3d",
          "#1890ff",
          "#bd2be8",
        ],
        series: [
          {
            name: "项目",
            roseType: "radius",
            hoverAnimation: false,
            type: "pie",
            center: ["30%", "50%"],
            radius: ["20%", "80%"],
            label: {
              show: false,
              position: "outside",
              formatter: "{d}%",
              fontSize: 14,
            },
            labelLine: {
              length: 5,
            },
            data: [
              {
                value: 9,
                name: "中压",
              },
              {
                value: 2,
                name: "高压",
              },
              {
                value: 13,
                name: "超高压",
              },
              {
                value: 23,
                name: "亚临界",
              },
              {
                value: 20,
                name: "超临界",
              },
            ],
          },
        ],
      },
}
},
methods:{
    initEcharts() {
      this.lengendData = this.option3.series[0].data;
    },
}

2、实现效果

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值