apache / echarts

Apache ECharts is a powerful, interactive charting and data visualization library for browser
https://echarts.apache.org
Apache License 2.0
60.66k stars 19.61k forks source link

[Bug] Pie chart: minShowLabelAngle and label.position break down together #17712

Closed sirAbramstone closed 2 years ago

sirAbramstone commented 2 years ago

Version

5.4.0

Link to Minimal Reproduction

https://codepen.io/Pikcher/pen/xxjYqMQ

Steps to Reproduce

  1. Chart creates as usual: echarts.init(container); instance.setOption(options);.
  2. Options:
    options = {
    series: [{
      type: 'pie',
      radius: ['40%', '70%'],
      minShowLabelAngle: 100,
      label: {
        show: true,
        position: 'inside',
      },
      data: [
        { value: 1048, name: 'Search Engine' },
        { value: 735, name: 'Direct' },
        { value: 580, name: 'Email' },
        { value: 484, name: 'Union Ads' },
        { value: 300, name: 'Video Ads' }
      ]
    }]
    }
  3. Problem become visible immediately after widget's initialisation

Current Behavior

Function "pieLabelLayout" that's placed in lib/chart/pie/labelLayout.js bring about code execution failure with error: TypeError: Cannot read properties of undefined (reading 'states'). It happens when chart has options pie-series.minShowLabelAngle and pie-series.label.position === 'inside' or pie-series.label.position === 'inner' together. You can see labels that should be hidden are displayed in top left corner of the chart.

image

Expected Behavior

Labels should not be displayed according to the minShowLabelAngle setting.

Environment

- OS: macOS Monterey
- Browser: Chrome 105.0.5195.125
- Framework: Vue@2

Any additional comments?

It seems like bug appears in version 5.4.0., I did't watch that behavior in previous minor version.

plainheart commented 2 years ago

Thanks for your feedback! This is an unexpected error brought by #17412. The labelLine may be undefined.

echarts-bot[bot] commented 2 years ago

This issue is labeled with priority: high, which means it's a frequently asked problem and we will fix it ASAP.

plainheart commented 2 years ago

@sirAbramstone I'm sorry about this bug. If it's serious and is a blocker for your project, you can do a patch for current package or use today's nightly version later.

npm i echarts@npm:echarts-nightly@5.4.1-dev.20220929
sirAbramstone commented 2 years ago

@plainheart thank you, I'll really appreciate this.

wilnerjs commented 2 years ago

@sirAbramstone I'm sorry about this bug. If it's serious and is a blocker for your project, you can do a patch for current package or use today's nightly version later.

npm i echarts@npm:echarts-nightly@5.4.1-dev.20220929

@plainheart thks!