Skip to content

There is a strange phenomenon when the number of legends in funnel chart is reduced to no need to turn pages #11444

@bulengjianghu

Description

@bulengjianghu

There is a strange phenomenon when the number of legends in funnel chart is reduced to no need to turn pages.

Action:
1、点击向下翻页,翻到第二页
2、点击按钮click me,图例位置显示异常

<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
       <div id="container" style="height: 100%"></div>
       <button onclick="test()" style="position:fixed;top:10px;left:20px">click me</button>
       <button onclick="testClear()" style="position:fixed;top:50px;left:20px">clear</button>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat/dist/ecStat.min.js"></script>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/dataTool.min.js"></script>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/china.js"></script>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/world.js"></script>
       <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=xfhhaTThl11qYVrqLZii6w8qE5ggnhrY&__ec_v__=20190126"></script>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/bmap.min.js"></script>
       <script type="text/javascript">


function test() {
   console.log('click');
   perform(8);
}

function testClear() {
   var dom = document.getElementById("container");
   echarts.dispose(dom);
   perform(8);
}

function perform(count) {
   var dom = document.getElementById("container");
   var myChart = echarts.init(dom);
   var app = {};
   var data = genData(count);
   var option = {
      title : {
         text: '同名数量统计',
         subtext: '纯属虚构',
         x:'center'
      },
      tooltip : {
         trigger: 'item',
         formatter: "{a} <br/>{b} : {c} ({d}%)"
      },
      legend: {
         type: 'scroll',
         orient: 'vertical',
         right: 10,
         y: 'center',
         bottom: 20,
         data: data.legendData,

         selected: data.selected
      },
      series : [
         {
            name: '姓名',
            type: 'pie',
            radius : '55%',
            center: ['40%', '50%'],
            data: data.seriesData,
            itemStyle: {
               emphasis: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
               }
            }
         }
      ]
   };
   if (option && typeof option === "object") {
      myChart.setOption(option, true);
   }
}

function genData(count) {
   var nameList = [
      '赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄', '危'
   ];
   var legendData = [];
   var seriesData = [];
   var selected = {};
   for (var i = 0; i < count; i++) {
      name = Math.random() > 0.65
         ? makeWord(4, 1) + '·' + makeWord(3, 0)
         : makeWord(2, 1);
      legendData.push(name);
      seriesData.push({
         name: name,
         value: Math.round(Math.random() * 100000)
      });
      selected[name] = i < 6;
   }

   return {
      legendData: legendData,
      seriesData: seriesData,
      selected: selected
   };

   function makeWord(max, min) {
      var nameLen = Math.ceil(Math.random() * max + min);
      var name = [];
      for (var i = 0; i < nameLen; i++) {
         name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
      }
      return name.join('');
   }
};

perform(20);

       </script>
   </body>
</html>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions