最近项目中使用echarts来实现饼图,其中样式都需要自己来设置,下面就分享一下代码,里面包含很多各种个性化的设置:

myChart.setOption({
        //鼠标移动到饼图某一块时突出显示
         tooltip: {
          trigger: 'item',
          formatter: '{b} : {c}', // b为name,c为value
          // formatter: '{b}:{c}({d}%)' // d为百分比
        },
        //图例数据解析
        legend: {
          //图例  标注各种颜色代表的模块
          orient: "horizontal", //图例的显示方式  默认横向显示 horizontal  vertical
          bottom: 10, //控制图例出现的距离  默认左上角
        //  left: "90%", //控制图例的位置
         itemWidth: 16, //图例颜色块的宽度和高度
         itemHeight: 16,
          icon:"circle", // 图例前的图标为圆点
          itemGap: 20,//图例之间的间距
          borderWidth: 0,                // 图例边框线宽
          padding: [0, 80, 0, 80],  
          // textStyle: {
          //   //图例中文字的样式
          //   color: "#217def",
          //   fontSize: 14,
          //   fontWeight: '600',
          //padding: [0, 0, 0, 4], // 修改文字和图标距离
          // }, 
          formatter: e =>{
              var data =this.option.series[0].data;
              var total = 0;
              var val = 0;
              data.forEach(el => {
                total += el.value;
                if(e == el.name) val = el.value
              });
              return `${e}  ${((val / total)*100).toFixed(2)}%`
            },
         // },
          data: that.xAxisData, //图例上显示的饼图各模块上的名字
        },
        color: ['#696969', '#5470c6', '#91cd77', '#ef6567', '#f9c956', '#75bedc','#ccc'],// 饼图各块颜色
        //数据展示
        series: {
          type: "pie",
          //  roseType: 'angle',
          center: ["50%", "38%"], // 饼图上下左右位置
          radius: ["30%", "60%"], // 空心饼图内外径
          data: that.seriesData, // 数据源
          label: {
            show: false,
            formatter: function (arg) {
              return arg.name + "(" + arg.value + ")";
            },
            fontSize: 14,
          },
          labelLine: {
            show: false,
          },
         itemStyle:{
                borderWidth:5, //设置border的宽度有多大
                borderColor:'#fff', // 设置后饼图间会有白色空隙
          },
        },
      });

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐