Echarts 饼图,legend样式美化

最后样式图:

实现代码: 

var myChart = echarts.init(document.getElementById('container'));
              let option = {
                  /*{b}: {c} ({d}%*/
                  legend: {
                      orient: 'vertical',
                      icon: "circle",
                      itemWidth: 5,
                      right: 20,
                      top: 70,
                      formatter: (name) => {
                          let data = this.data;
                          let total = 0;
                          let target;
                          for (let i = 0; i < data.length; i++) {
                              total += data[i].value;
                              if (data[i].name === name) {
                                  target = data[i].value;
                              }
                          }
                          let arr = [
                              '{a|' + name + '}{b|' + target + '}{c|' + ((target / total) * 100).toFixed(2) + '%}'
                          ];

                          return arr.join('\n')
                      },
                      textStyle: {
                          rich: {
                              a: {
                                  verticalAlign: 'right',
                                  fontSize: 12,
                                  align: 'left',
                                  // padding:[0,28,0,0],
                                  width: 70
                              },
                              b: {
                                  fontSize: 12,
                                  align: 'left',
                                  // padding:[0,28,0,0],
                                  width: 50

                              },
                              c: {
                                  fontSize: 12,
                                  align: 'left',
                                  width: 50
                              }
                          }
                      },
                  },
                  // color:this.getRandomColor,
                  series: [
                      {
                          center: ['25%', '50%'],
                          name: '访问来源',
                          type: 'pie',
                          radius: ['50%', '60%'],
                          avoidLabelOverlap: true,
                          hoverOffset: 0,
                          hoverAnimation: false,
                          silent: true,
                          /*label: {
                              normal: {
                                  show: false,
                                  position: 'center'
                              }*/
                          label: {
                              show: true,
                              position: 'center',
                              textStyle: {
                                  fontSize: '20',
                                  fontFamily: '黑体',
                                  fontWeight: 'bold',
                                  rich: {
                                      d: {
                                          fontSize: 35,
                                          color: '#696969',
                                      },
                                      e: {
                                          fontSize: 17,
                                          color: '#696969',
                                          lineHeight: 25,
                                      }
                                  }
                              },
                              formatter: (params) => {
                                  let data = this.data;
                                  let number = 0;
                                  data.forEach((data) => {
                                      number += data.value;
                                  });
                                  return [
                                      '{d|' + number + '}\n' +
                                      '{e|影像数量}'
                                  ]
                              }

                              // emphasis: {
                              //     show: true,
                              //     textStyle: {
                              //         fontSize: '30',
                              //         fontWeight: 'bold'
                              //     }
                              // }
                          },
                          labelLine: {
                              normal: {
                                  show: false
                              }
                          },
                          data: this.data
                      }
                  ]
              };
              if (option && typeof option === "object") {
                  myChart.setOption(option, true);
              }

富文本标签

https://echarts.baidu.com/option.html#legend.textStyle.rich

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值