echarts 实现环型图

 附上代码

export function getQualification(params) {
  let color3 = new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ offset: 0, color: "#00FFD5" }, { offset: 1, color: "#26FAFF" }], false);
  let color2 = new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ offset: 0, color: "#00B4E0" }, { offset: 1, color: "#02CBD7" }], false);
  let color1 = new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ offset: 0, color: "#3BD6FF" }, { offset: 1, color: "#0D54FF" }], false);
  let color = [color1, color2, color3]
  let chartData = [{
    name: "初检通过率",
    value: 11,
    unit: '%'
  },
  {
    name: "复检通过率",
    value: 22,
    unit: '%'
  },
  {
    name: "总检通过率",
    value: 33,
    unit: '%'
  },
  ];
  let arrName = [];
  let arrValue = [];
  let sum = 0;
  let pieSeries = [],
    lineYAxis = [];

  // 数据处理
  chartData.forEach((v, i) => {
    arrName.push(v.name);
    arrValue.push(v.value);
    sum = sum + v.value;
  })

  // 图表option整理
  chartData.forEach((v, i) => {
    pieSeries.push({
      name: '合格率',
      type: 'pie',
      clockWise: false,
      hoverAnimation: false,
      radius: [65 - i * 15 + '%', 57 - i * 15 + '%'],
      center: ["30%", "60%"],
      label: {
        show: false
      },
      data: [{
        value: v.value,
        name: v.name,
        itemStyle: {
          borderRadius: [10, 10, 10, 10]
        },
      }, {
        value: sum - v.value,
        name: '',
        itemStyle: {
          color: "rgba(0,0,0,0)",
        },
        tooltip: {
          show: false
        },
      }]
    });
    pieSeries.push({
      name: '',
      type: 'pie',
      silent: true,
      z: 1,
      clockWise: false, //顺时加载
      hoverAnimation: true, //鼠标移入变大
      radius: [65 - i * 15 + '%', 57 - i * 15 + '%'],
      center: ["30%", "60%"],
      label: {
        show: false
      },
      data: [{
        value: 7.5,
        itemStyle: {
          color: "#E3F0FF",
          borderRadius: [10, 10, 10, 10]
        },
      }, {
        value: 2.5,
        name: '',
        itemStyle: {
          color: "rgba(0,0,0,0)",
        }
      }]
    });
    v.percent = (v.value / sum * 100).toFixed(1) + "%";
    lineYAxis.push({
      value: i,
      textStyle: {
        rich: {
          circle: {
            color: color[i],
            padding: [0, 5]
          }
        }
      }
    });
  })

  let option = {
    backgroundColor: '#fff',
    color: color,
    legend: {
      top: '28%',
      right: '12%',
      icon: 'path://M 5.6625788784379045 9.946769456681356  C 9.224907727110386 6.57672540381792  14.859864269555896 6.514317180616742  18.42219311822838 9.821953010279003  L 23.53899273723063 4.891703377386198  C 17.126800809620217 -1.2867107195300997  6.763662340754848 -1.2867107195300997  0.416240028574828 4.891703377386198  L 5.6625788784379045 9.946769456681356  Z ',
      itemWidth: 20,//修改小图标宽
      itemHeight: 10,//修改小图标高
      // orient: 'vertical',
      itemGap: 12,
    },
    tooltip: {
      trigger: 'item',
      formatter: '{b} {c}%'
    },
    yAxis: [{
      type: 'category',
      inverse: true,
      axisLine: {
        show: false
      },
      axisTick: {
        show: false
      },
    }],
    xAxis: [{
      show: false
    }],
    series: pieSeries
  };
  return option
}

亲们

 图例我设置竖向显示 但是还是水平显示  后来注释调就OK了   这个搞不明白  欢迎在评论区讨论

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值