echart自定义图例icon的形状

需求:将雷达图的图例修改成六边形

echart官方给出的图例:‘circle’, ‘rect’, ‘roundRect’, ‘triangle’, ‘diamond’, ‘pin’, ‘arrow’, ‘none’,并没有六边形。

自定义的方法:

1、base64

将UI中的图标下载,通过在线转换工具,转成base64

2、使用 矢量 路径

将UI中的图标下载成svg格式,获取path中d后面的参数

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" class="design-iconfont">
  <path d="M14 0L26.1243557 7 26.1243557 21 14 28 1.87564435 21 1.87564435 7z" fill="#A90F36" fill-rule="nonzero" opacity=".8"/>
</svg>

代码实例中的data属性

 option = {
        color: ['#F09229', '#A90F36'],
        legend: {
          show: true,
          bottom: '85px',
          position: 'center',
          itemWidth: 14,
          itemGap: 25,
          // icon:this.yellow,
          data: [
          {icon: 'path://M14 0L26.1243557 7 26.1243557 21 14 28 1.87564435 21 1.87564435 7z', name: '您的表现: ' + this.myScore},
          {icon:'path://M14 0L26.1243557 7 26.1243557 21 14 28 1.87564435 21 1.87564435 7z', name: '股民: ' + this.averageScore}
            // '您的表现: ' + this.myScore, '股民: ' + this.averageScore
          ],
          formatter: (val) => {
            if (val[0] === '您') {
              return '{b|您的表现:  }' + '{a|' + this.myScore + '}'
            } else {
              return '{b|股民:  }' + '{a|' + this.averageScore + '}'
            }
          },
          textStyle: {
            //图例文字的样式
            // color: '#fff',
            fontSize: 12,
            rich: {
              a: {
                color: '#F83F10',
                fontWeight: 500,
                fontSize: 12,
              },
              b: {
                color: '#A03C00',
                fontWeight: 400,
                fontSize: 12,
              },
            }
          }
        },
        radar: [
          {
            center: ['50%', '32%'],
            radius: '35%',
            splitNumber: 3,
            nameGap: 8,
            name: {
              formatter: function(val, indicator) {
                return '{a|' + val + '}\n{b|高于 }{c|' + indicator.percent + '%}{b| 的用户}'
              },
              rich: {
                a: {
                  align: 'center',
                  color: '#A03C00',
                  lineHeight: 12,
                  fontSize: 12,
                  fontWeight: 500,
                  fontFamily: 'PingFangSC-Medium'
                },
                b: {
                  align: 'center',
                  color: '#A03C00',
                  lineHeight: 22,
                  fontSize: 12,
                  fontWeight: 400,
                  letterSpacing: 0,
                  fontFamily: 'PingFangSC-Medium'
                },
                c: {
                  color: '#F83F10',
                  lineHeight: 22,
                  fontSize: 12,
                  fontFamily: 'PingFangSC-Medium'
                }
              }
            },
            shape: 'polygon',
            indicator: this.indicator,
            splitLine: {
              lineStyle: {
                color:'#E2B79F'
              }
            },
            splitArea: {
              show: false
            },
            axisLine: {
              lineStyle: {
                color: '#E2B79F',
              }
            }
          }
        ],
        series: [
          {
            symbol: 'none',
            name: '股民: ' + this.averageScore,
            type: 'radar',
            data: [
              {
                value: this.averageRank || '--',
                lineStyle: {
                  opacity: 0
                },
                areaStyle: {
                  color: {
                    type: 'linear',
                    x: 0,
                    y: 0,
                    x2: 1,
                    y2: 1,
                    colorStops: [
                      {
                        offset: 0,
                        color: '#5899FF' // 0% 处的颜色
                      },
                      {
                        offset: 1,
                        color: '#4634EF' // 100% 处的颜色
                      }
                    ],
                    globalCoord: false // 缺省为 false
                  }
                }
              }
            ]
          },

          {
            symbol: 'none',
            name: '您的表现: ' + this.myScore,
            type: 'radar',
            data: [
              {
                value: this.myRank || '--',
                lineStyle: {
                  opacity: 0
                },
                areaStyle: {
                  color: {
                    type: 'linear',
                    x: 0,
                    y: 0,
                    x2: 1,
                    y2: 1,
                    colorStops: [
                      {
                        offset: 0,
                        color: '#FF8D36' // 0% 处的颜色
                      },
                      {
                        offset: 1,
                        color: '#FF0000' // 100% 处的颜色
                      }
                    ],
                    globalCoord: false // 缺省为 false
                  }
                }
              }
            ]
          }
        ]
</svg>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

waves0001

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

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

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

打赏作者

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

抵扣说明:

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

余额充值