[apache/echarts][问题]图例可能会有多行时,如何避免图形与图例重叠?

2024-05-11 346 views
6
版本

5.3.0

重现步骤

图像

目前的行为

由于关系需求,这块不能使用滚动类型图例,并且由于图例数量不确定,无法给图形设置一个合适的top值,导致图例与图形可能重叠

预期行为

不能实现图例把图形挤下去的效果吗?或者不能获取到图例的高度,这样我就可以给图形设置一个合适的top值。

环境
- OS:
- Browser:
- Framework:

回答

8

目前没有很好的办法,只能根据图形数量大致估计一下,然后手动设置 grid.top 来调整

0

图例多行显示时,grid.top 的值应该是自适应的,目前参考提示修改 top 值是不合理的,体验很差。ECharts功能很强大,但明显细节处理的很糟糕,例如:

  1. X轴标签标签太长不能智能处理。
  2. Y轴,配置了grid.containLabel=true,即使配置不显示Y轴,左边还是保留了containLabel=true计算出来的空白。
  3. 图例多行展示和下面的图表重叠
3

我现在的解决方法如下(使用react hooks),大体思路就是渲染完成后通过echart实例实例获取到图例高度,然后根据高度重新设置顶部再渲染一次 图像

3

这种需求密度显示太密集了,改变组件大小等很多情况都会导致图例换行,需要提供一个智能或手动的办法,总是用重渲染的方式其实是有些间距低。@Ovilia

0

@xmdong 这确实是一个有效的解决方案

1

有配置动画还是用rendered事件否则要等动画响应完了才改变高度图例和图表叠在一起了

7

这个问题真的需要解决下啊,太影响体验了吧,而且x/y轴的nameLocation = "middle"时如果设置了axisLabel的旋转角度,同时还有这个重叠的问题