解决方案:
  1. 调整option中的grid.top值才能避免重叠;(可以设置定制,也可以定义了一个计算公式)

2. 文档注明【特殊字符串 ''(空字符串)或者 '\n' (换行字符串)用于图例的换行。】

转载来源:http://blog.csdn.net/doleria/article/details/52503763

内容如下:

github地址:Data Visualization

---------------------------------------------------------------------------------------------------------------------------------------

当Echarts报表表头过多时,虽然Echarts会做自适应,但是由于图例文字可能过长等,图例与图表线条难免会重叠显示。如下图所示:

参考这篇文章,以及Echarts的官方文档,得出以下解决方案:

1. 文档注明【特殊字符串 ''(空字符串)或者 '\n' (换行字符串)用于图例的换行。】
    2. 换行后动态调整option中的grid.top值才能避免重叠;(定义了一个计算公式)

在解决这个问题时,用PHP写了个定制Echarts的类,其中与调整图例相关的部分如下,仅供参考:

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: liuyuning
  5. * Date: 2016/8/9
  6. * Time: 18:59
  7. */
  8. class Ep_CustomizeEcharts {
  9. const LINE_NUM_EACH_ROW              = 3;  //图例中每行显示的线条数目;
  10. const DEFAULT_LINE_NUM               = 6;  //采用默认grid.top值的默认线条数目;
  11. const DEFAULT_GRID_TOP_PECENTAGE     = 18; //默认的grid.top百分比(整数部分);
  12. const DELTA_GRID_TOP_PECENTAGE       = 9;  //超出默认线条数时的grid.top百分比增量(整数部分);
  13. const MAX_GRID_TOP_PECENTAGE         = 50; //最大的grid.top百分比(整数部分);
  14. /**
  15. * 调整图例显示样式
  16. * @params array 需要调整的图例
  17. * @return array
  18. */
  19. public function adjustLegend ($beforeLegend) {
  20. // 图例太多时,Echarts文档注明【特殊字符串 ''(空字符串)或者 '\n' (换行字符串)用于图例的换行。】
  21. $afterLegend = array();
  22. $index = 0;
  23. $len = count($beforeLegend);
  24. for ( $i = 0; $i < $len; $i++) {
  25. if (($index+1)%(self::LINE_NUM_EACH_ROW + 1) === 0) {
  26. $afterLegend[$index] = '';
  27. $index++;
  28. $afterLegend[$index] = $beforeLegend[$i];
  29. } else {
  30. $afterLegend[$index] = $beforeLegend[$i];
  31. }
  32. $index++;
  33. }
  34. return $afterLegend;
  35. }
  36. /**
  37. * 设置grid.top值
  38. * @params array 需要调整的图例
  39. * @return string
  40. */
  41. public function setGridTop($arrLegend) {
  42. $len = count($arrLegend);
  43. // 如果图例太多,需要调整option中的grid.top值才能避免重叠
  44. $topInt = $len > self::DEFAULT_LINE_NUM ?
  45. self::DEFAULT_GRID_TOP_PECENTAGE + self::DELTA_GRID_TOP_PECENTAGE
  46. * (Ceil(($len - self::DEFAULT_LINE_NUM)/self::LINE_NUM_EACH_ROW))
  47. : self::DEFAULT_GRID_TOP_PECENTAGE;
  48. if ($topInt >= self::MAX_GRID_TOP_PECENTAGE) {
  49. $topInt = self::MAX_GRID_TOP_PECENTAGE;
  50. }
  51. $gridTop = "$topInt%";
  52. return $gridTop;
  53. }
  54. }

调整好的效果如下图所示:

github地址:Data Visualization

echarts legend 重叠 (转载)的更多相关文章

  1. echarts legend文字配置多个颜色(转)

    困扰很久的问题终于解决了 oh yea! echarts legend文字配置多个颜色legend: {data: [{name:‘直接访问’,icon : ‘circle’,textStyle: { ...

  2. echarts legend 图例文字闪烁显示

    最近同事小夏遇到一个需求:客户要求echarts图表上指定的图例文字闪烁显示. 先放一张图: 客户要求:待处理字样要闪动显示. 小夏一番百度之后,求助于我:快来看看,怎么有客户提这种百度都百度不到答案 ...

  3. echarts散点图重叠

    今天做echarts图标,使用了散点图.很快实现,发现数据不对,应该是3个的企业,页面只显示了2个,查了半天才发现原来是有两个重叠了.想办法解决了,在网上费劲九牛二虎只力终于找到了解决的方法,下面来解 ...

  4. echarts legend 限制规定显示个数,显示省略号,修改默认样式

    类似百度统计,有的时候legend的个数比较多,但是前端需要控制初始化显示的个数,以及最多显示的条数,先看效果图: 先给代码: <!DOCTYPE html> <html lang= ...

  5. d3.js 教程 模仿echarts legend功能

    上一节记录没有加上echarts的legend功能,这一小节补一下. 1. 数据 我们可以从echarts中看出,折线数据并不是我们传进入的原始数据(多数情况下我们也不会修改原始数据),而是原始数组的 ...

  6. echarts legend 的单选模式以及轮播技巧

    1.设置 legend 属性: selectedMode: 'single' 2.使用 myCharts.dispatchAction 来设置legend的聚焦 broadcast (v) { // ...

  7. Echarts - legend属性设置

    legend: { orient: 'horizontal', // 'vertical' x: 'right', // 'center' | 'left' | {number}, y: 'top', ...

  8. echarts的title和legend重合解决(各种小细节)

    一:关于title与legend重叠 1.重合样子 2.解决办法: legend:{ show: true, top:"6%",//与上方的距离 可百分比% 可像素px }, 3. ...

  9. CSS外边距margin上下元素重叠

    CSS外边距margin上下元素重叠 转载:http://www.gaoyouyou.com/view/77.htm 两个或多个块级盒子的垂直相邻边界会重合.结果的边界宽度是相邻边界宽度中最大的值.如 ...

随机推荐

  1. 爬虫利器BeautifulSoup模块使用

    一.简介 BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式,同时应用场景也是非常丰富,你可以使用 ...

  2. flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台(总结感悟篇)

    前言: 在前进中去发现自己的不足,在学习中去丰富自己的能力,在放弃时想想自己最初的目的,在困难面前想想怎么踏过去.在不断成长中去磨炼自己. 正文: 时间轴 flask + Python3 实现的的AP ...

  3. python3的一些改动常用到的

    更多的内容会接下来说明,只举几个例子. https://docs.python.org/2/library/2to3.html 1. map的输出,要在前面加list转化 2. map(lambda ...

  4. windows7 设定开关机事件

    动记录开关机的技能你知道吗? 下面跟我来设定一下记录电脑的开关机时间吧,工作常常会用到的. 在""我的电脑"右击=>管理=>系统工具=>时间查看器=&g ...

  5. linux如何自动获取ip地址

    第一步:激活网卡 系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活. # ifconfig eth0 up 第二步:设置网卡进入系统时启动 想要每次开机就可以自动获取IP地址上网,就要设置网 ...

  6. glReadPixel 读取数据错误问题

    glReadPixel 读取数据错误问题 问题:在Android上使用 glReadPixel 读取当前渲染数据,在若干机型(华为P9以及魅族某魅蓝手机)上读取数据失败,glGetError() 没有 ...

  7. jQuery的标签选择器$('p')、类选择器$('.myClass')、id选择器$('#myId')

    $()可以是$(expresion),即css选择器 $("a")构造的这个对象,是用CSS选择器构建了一个jQuery对象——它选择了所有的<a/>这个标签 $(&q ...

  8. android 页面的切换

    startActivity后加:IntentHelper.jump(mContext, MyBalanceActivity.class);activity.overridePendingTransit ...

  9. android imageview按钮按下动画效果

    private ImageView today_eat: today_eat = (ImageView) view.findViewById(R.id.today_eat); today_eat.se ...

  10. web开发概述

    1 Web概述 Web,在英语中表示网页的额意思,它用于表示Internet主机上供外界访问的资源. 2 Web的分类 按照服务器上的资源分类: 静态资源:指的是web页面中供人们浏览的数据是始终不变 ...