echarts 饼图标签和图形重叠了如何解决?

我想实现的是这种效果,也是官网的例子
image.png

可是我显示出来的效果标签和图形重叠了,如何解决?
image.png

这是我的代码:

option.title = {
          text: '121312', // 主标题文本
          subtext: '发薪总额', // 副标题文本
          left: 'center',
          top: '38%',
          textStyle: {
            fontSize: 18,
            color: '#454c5c',
            align: 'center'
          },
          subtextStyle: {
            fontFamily: '微软雅黑',
            fontSize: 14,
            color: '#6c7a89'
          }
        }

        option.series[0].type = 'pie'
        option.series[0].radius = [40, 60]
        option.series[0].itemStyle = {
          borderColor: '#fff',
          borderWidth: 1
        }
        option.series[0].labelLine = {
          length: 15,
          length2: 0,
          maxSurfaceAngle: 80
        }
        option.series[0].label = {
          alignTo: 'edge',
          formatter: '{name|{b}}\n{time|{c} 小时}',
          minMargin: 5,
          edgeDistance: 10,
          lineHeight: 15,
          rich: {
            time: {
              fontSize: 10,
              color: '#999'
            }
          }
        }
        option.series[0].labelLayout = function (params) {
          const isLeft = params.labelRect.x < myChart.getWidth() / 2
          const points = params.labelLinePoints
          // Update the end point.
          points[2][0] = isLeft
            ? params.labelRect.x
            : params.labelRect.x + params.labelRect.width
          return {
            labelLinePoints: points
          }
        }
        option.series[0].data = [
          { value: 1048, name: 'Search Engine' },
          { value: 735, name: 'Direct' },
          { value: 580, name: 'Email' },
          { value: 484, name: 'Union Ads' },
          { value: 320, name: 'sdfsdf' }
        ]
阅读 5k
3 个回答

解决了,是因为echarts版本问题,我从4.9升级到5.4就没问题了
image.png

    "echarts": "^4.9.0",

升级到

    "echarts": "^5.4.0",

labelLine 加长,textStyle变小,合成一行,然后echarts的渲染区域变大。图表会自动计算排版的

你这是不是设置了固定宽高
图片.png

option = {
                tooltip: {
                    trigger: 'item',
                    fontSize: 14,
                    formatter: function (a) {
                        var relVal = '<div style="text-align: left;color: #000000;">' + a.marker + a.name + ':' + a.data.valueTwo
                                +  '%' + '&nbsp;&nbsp;' + '(' + a.data.value + '人' + ')' + '</div>'  
                        
                        return relVal
                    },
                },
                series: [
                    {
                        type: 'pie',
                        radius: '50%',
                        data: this.uData
                        },
                        label: {
                            color: '#000000',
                            fontSize: 14,
                            formatter: function (a) {
                                var val = a.name + ':' + a.data.valueTwo + '%' + '  ' + '(' + a.data.value + '人' + ')'
                                return val
                            }
                        },
                        emphasis: {
                            itemStyle: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                            }
                        }
                    }
                ]
            }
            option && myChart.setOption(option, { notMerge: 'true'})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏