echarts 3/4的图 极坐标

在这里插入图片描述
实际上是饼图pie

option配置

setOption2() {
      let color = ["#3531EA","#FFA842", "#EA5231", "#42F474", "#FBFF42"];
      let chartData = [
        {
          name: "A组",
          value: 100,
          unit: "次"
        },
        {
          name: "B组",
          value: 80,
          unit: "次"
        },
        {
          name: "C组",
          value: 60,
          unit: "次"
        },
        {
          name: "D组",
          value: 80,
          unit: "次"
        },
        {
          name: "E组",
          value: 100,
          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,
          radius: [66 - i * 15 + "%", 70 - i * 15 + "%"],
          center: ["30%", "50%"],
          label: {
            show: false
          },
          data: [
            {
              value: v.value,
              name: v.name
            },
            {
              value: sum - v.value,
              name: "",
              itemStyle: {
                color: "rgba(11,31,62,0)"
              }
            }
          ]
        });
        pieSeries.push({
          name: "",
          type: "pie",
          silent: true,
          z: 1,
          clockWise: false, //顺时加载
          radius: [66 - i * 15 + "%", 70 - i * 15 + "%"],
          center: ["30%", "50%"],
          label: {
            show: false
          },
          data: [
            {
              value: 7.5,
              itemStyle: {
                color: "#0A2257"
              }
            },
            {
              value: 2.5,
              name: "",
              itemStyle: {
                color: "rgba(11,31,62,0)"
              }
            }
          ]
        });
        v.percent = ((v.value / sum) * 100).toFixed(1) + "%";
        lineYAxis.push({
          value: i,
          textStyle: {
            padding:[5,0,5,0],
            color: color[i],
            
          }
        });
      });

      this.option2 = {
        backgroundColor: "rgba(4,10,33,0.1)",
        color: color,
        grid: {
          top: "15%",
          bottom: "54%",
          left: "30%",
          containLabel: false
        },
        legend: {
          show: true,
          orient: "vertical",
          top: "middle",
          icon: "circle",
          right: '10%',
          itemWidth: 8,
          itemHeight: 8,
          data: chartData,
          formatter: function (v) {
            let value = chartData.filter((item) => {
              return item.name == v;
            })[0].value;
            return `{a|${v}} {b|${value}}{c|次}`;
          },
          textStyle: {
            color: "auto",
            fontSize: 14,
            rich: {
              a: {
                width: 40,
                color: "#809ABE",
                fontSize: 12,
                height: 20
              },
              b: {
                color: "#317EEA",
                fontSize: 14,
                padding: [0, 5, 0, 5]
              },
              c: {
                color: "#809ABE",
                fontSize: 8
              }
            }
          }
        },
        yAxis: [
          {
            type: "category",
            inverse: true,
            axisLine: {
              show: false
            },
            axisTick: {
              show: false
            },
            axisLabel: {
              formatter: function (params) {
                let item = chartData[params];
                return "{circle|}{value|" + item.value + "}次";
                // return (
                //   "{line|}{circle|●}{name|" +
                //   item.name +
                //   "}{bd||}{percent|" +
                //   item.percent +
                //   "}{value|" +
                //   item.value +
                //   "}{unit|次}"
                // );
              },
              interval: 0,
              inside: true,
              textStyle: {
                color: "auto",
                fontSize: 12,
                rich: {
                  value: {
                    fontSize: 12,
                  },
                  unit: {
                    fontSize: 12,
                  }
                }
              },
              show: true,
            },
            data: lineYAxis
          }
        ],
        xAxis: [
          {
            show: false
          }
        ],
        series: pieSeries
      };
    },

调用

this.chartColumn2 = ECharts.init(this.$refs.chartColumn2);
this.setOption2();
this.chartColumn2.setOption(this.option2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖啡不加糖�

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值