包含关系饼图echart

1.演示图

image.png

2.配置

点击突出小圆形突出 ,点击图例同色系消失

import * as echarts from "echarts";
setChart5() {
    let _this = this;
//演示数据
    let arry =[
        {
        "shopType": 0,
        "isBorder": 1,
        "gmv": 7332.17
        },
        {
        "shopType": 0,
        "isBorder": 2,
        "gmv": 2370.15
        },
        {
        "shopType": 1,
        "isBorder": 1,
        "gmv": 570474.29
        },
        {
        "shopType": 1,
        "isBorder": 2,
        "gmv": 52894.14
        },
        {
        "shopType": 2,
        "isBorder": 1,
        "gmv": 901.39
        },
        {
        "shopType": 2,
        "isBorder": 2,
        "gmv": 4.02
        },
        {
        "shopType": 0,
        "isBorder": 0,
        "gmv": null
        },
        {
        "shopType": 1,
        "isBorder": 0,
        "gmv": null
        },
        {
        "shopType": 2,
        "isBorder": 0,
        "gmv": null
        }
        ]
      let chart = echarts.init(document.getElementById("Chart5"));
      if (chart) {
        chart.resize();
        chart.clear();
      } else return;

      let _data = [
        { value: 20, name: `shopee店铺`, shopType: 0 },
        { value: 12, name: `优选店铺`, shopType: 1 },
        { value: 5, name: `普通店铺`, shopType: 2 },
      ];
    //  <!-- 数据处理 -->
      arry.map((item, index) => {
        if (item.shopType == 0) {
          item.name=`shopee店铺`
        }
        if (item.shopType == 1) {
          item.name=`优选店铺`
        }
        if (item.shopType == 2) {
          item.name=`普通店铺`
        }
       item.value = Number(item.gmv).toFixed(2);
      });
   
    const res1 = arry.filter(item => item.shopType == 0);
    const res2 = arry.filter(item => item.shopType == 1);
    const res3 = arry.filter(item => item.shopType == 2);
  
      let option = {
        tooltip: {
          trigger: 'item',
          formatter: '{b}: {c} ({d}%)'
        },
     //   <!-- 背景圆 -->
       angleAxis: {
          interval: 1,
          type: "category",
          data: [
            `shopee店铺`,
            `优选店铺`,
            `普通店铺`,
          ],
          textStyle: {
            color: "red",
            fontSize: "14px",
          },
          z: 10,
          axisLine: {
            show: false,
            lineStyle: {
              color: "#AFD8FF",
              width: 1,
              type: "solid",
            },
          },
          axisLabel: {
            interval: 0,
            show: false,
            color: "#181818",
            margin: 8,
            fontSize: 16,
          },
        },
        radiusAxis: {
          min: 0,
          max: 120,
          interval: 20,
          axisLine: {
            show: false,
            lineStyle: {
              color: "#AFD8FF",
              width: 1,
              type: "solid",
            },
          },
          axisLabel: {
            formatter: "{value} %",
            show: false,
            padding: [0, 0, 20, 0],
            color: "#AFD8FF",
            fontSize: 16,
          },
          splitLine: {
            lineStyle: {
              color: "#AFD8FF",
              width: 1,
              type: "solid",
            },
          },
        },
        polar: {},
        legend: {
          orient: 'horizontal',
          icon: 'roundRect',
          itemWidth: 10, 
          itemHeight: 10,
          itemGap: 20,
          bottom: '-5',
          x: 'center',
         data: [
         `shopee店铺`,
         `优选店铺`,
         `普通店铺`,    
          ],
        },
        series: [
   //     <!-- 中间小圆形 -->
          {
            name: '',
            type: 'pie',
            selectedMode: 'single',
            radius: [0, '30%'],
            label: {
              position: 'inner',
              fontSize: 14,
              show: false
            },
            color: ['#FF7E3D', '#5470C6', '#EDC948'],
            labelLine: {
              show: false
            },
            // // shopType: '1',//店铺类型 0 shopee店铺 1 优选店铺 2 普通店铺
            data: [
              { value: Number(res1[0].gmv)+ Number(res1[1].gmv), name:`${this.$t("site.shopee")}`, selected: this.defaultParams.shopType==0?true:false,shopType:0 },
              { value: Number(res2[0].gmv)+Number(res2[1].gmv), name:`${this.$t("site.Preferred")}`,selected: this.defaultParams.shopType==1?true:false,shopType:1},
              { value: Number(res3[0].gmv)+Number(res3[1].gmv), name:`${this.$t("site.Ordinary")}`,selected: this.defaultParams.shopType==2?true:false,shopType:2 },
              
            ]
          },
  //        <!-- 外圈圆形 -->
          {
            name: '',
            type: 'pie',
            radius: ['55%', '66%'],
            labelLine: {
              length: 30
            },
            tooltip: {
              show: true,
              formatter: function (params) {
                let {percent,name,value,data}=params
                let _name=""
                     // isBorder 0 其他 1 本土 2 跨境
                if (data.isBorder==2) {
                  _name=`(${_this.$t("site.isBorder1")})`
                }else{
                  _name=`(${_this.$t("site.isBorder2")})`
                }
                return `<div>${name}${_name} : ${value}(${percent}%)</div>`;
              },
              
            },
            label: {
              show: false
            },
            // color: ['#E64700', '#FFB58F', '#8EC3FF','#5A82FF','#EEA22F','#FFEA9C',],
            itemStyle: {
              normal: {
                color: function (colors) {
                  var colorList = [
                  '#E64700', '#FFB58F', '#8EC3FF','#5A82FF','#EEA22F','#FFEA9C'
                  ];
                  return colorList[colors.dataIndex];
                }
              },
            },
            data: arry
          },
          {
            type: "pie",
            radius: ["80%", "83%"],
            clickable:false,
            hoverAnimation: false,
            labelLine: {
              show: false,
              normal: {
                show: false,
              },
              emphasis: {
                show: false,
              },
            },
            tooltip: {
              show: false,
            },
            data: [
              {
                value: 0,
                itemStyle: {
                  normal: {
                    color: "#AFD8FF",
                  },
                },
              },
            ],
          },
        ]
      }

      chart.setOption(option);
 
    chart.off('click').on('click', function(obj) {

       // <!-- 更新数据 -->
       console.log(接口更新)
       // _this.initRefresh()
      });
   
      
    },
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,009评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,808评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,891评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,283评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,285评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,409评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,809评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,487评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,680评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,499评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,548评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,268评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,815评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,872评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,102评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,683评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,253评论 2 341

推荐阅读更多精彩内容

  • 目的:UI设计的目的是为了更好服务用户;能让用户快速完成自己的目标; UI设计的发展趋势:全链路和复合化的设计人才...
    quantre阅读 10,979评论 9 83
  • 近期,我们将发布一系列图表制作和美化教程,提升大家在PPT图表方面制作的专业程度,欢迎大家关注我。 数据是产生信任...
    犀流沙阅读 1,608评论 0 3
  • 冷色系给人以静心,沉稳,稳重及品质感的感觉,结合明亮的色系选择, 让用户可以感受到稳重有轻快,愉悦舒适,积极客观的...
    表情会阅读 873评论 0 2
  • 金刚区是一个页面中头部的重要位置、是页面的核心功能区域,表现形式为多行排列的宫格区图标。那么,金刚区的图标应该如何...
    越努力越幸运yyy阅读 2,734评论 0 3
  • 本教程通过模拟企业项目中图标优化的真实案例,手把手教你如何快速绘制扁平化图标。 本教程谨代表个人观点,不做企业宣传...
    Shell_Xiao糯米阅读 2,121评论 1 18