[apache/echarts]柱状图不能设置间距

2024-07-16 92 views
0

4.4.0

// 官网样例, option 修改如下:

option = { xAxis: { data: ['a', 'b', 'c', 'd','a', 'b', 'c', 'd','a', 'b', 'c', 'd','a', 'b', 'c', 'd','a', 'b', 'c', 'd'], }, yAxis: { splitLine: {show: false} }, series: [{ type: 'bar', barWidth: 40, barCategoryGap:10, // 如果设置了 barWidth , 会导致间距自动适应, 从而 barCategoryGap 的值失效 data: [10, 20, 30, 40, 50, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60] }] };

希望能设置间距,或者增加属性最小间距

当柱子特别多的时候, 间距可能会过小,并在一起

回答

7

@0x018 一般这种业务场景,考虑数据少时和数据多时的适配。 我是采用设置bar的最大宽度 barMaxWidth ,不去固定 barWidth 大小。这样当数据量少时,Bar 不会很宽。当数据量大时,barWidth 会自适应大小。此时设置 barCategoryGap ,也不会受影响。

这样的处理方法,应该是正确的方向。毕竟图表宽度是固定的,你想 barwidth 和间隙固定,除非你的数据刚好平分这个图表宽度,不然数据量较多时,就会出现你说的挤在一起的现象。

3

数据量和内容不是我能控制的,所以我就是需要同时设置 宽度间距.

他自带的自适应不能解决, 所以才希望能够自己指定.

设置 barMaxWidthbarMinWidth ,一样导致 barCategoryGap 失效

2

我跟你一样,需求是固定条宽度和间距,而echarts只能二选一:选了宽度,间距就失效 ;选了间距宽度就失效。

设计图:

image

实现尝试 固定宽度
  • 代码 image
  • 效果 image
固定间距
  • 代码 image
  • 效果 image

哭兮兮?,改不动,求大佬指教!万谢!

6

数据多的情况,又想同时保证宽度、间隔不变,怎么可能! 举个例子:图表宽度 100px,需求 bar宽 15px,间隔5px。 当bar条数大于5条时,(bar宽+间隔)* 条数 > 100px 。你让 chart 怎么显示,才能满足你两者都固定不变的需求?同样的问题,你只固定bar宽,结果也会大于100px。 所以数据多的情况不能固定bar宽,而是只固定间隔大小。

3

@zuiyuexuan 我觉得你的这个例子超过了可以出滚动条或者直接溢出不显示。 image

9

横向滚动条,对于交互来说,一般不会采用。 无论滚动条或溢出不显示,都会有一个问题,一眼看不出趋势,需要操作成本才能知晓。

6

先引用一下百度百科一眼看出数据趋势不是条形图的特点。可能你说的是折线图吧。

条形图是统计图资料分析中最常用的图形。主要特点有:
1、能够使人们一眼看出各个数据的大小。
2、易于比较数据之间的差别。

需求是一共就一组对比数据,不需要看趋势,只对比ab两个数据的多少。

6

针对你的需求,是不需要。我之前的回答主要考虑楼主的需求。 目前你的问题,先做个视觉欺骗吧。只有bar是echarts渲染,其他用背景图。

4

image

麻烦请问谁知道,标红区域的怎么调整小一些,目前的barGap,只针对绿色的区域的间隔有效,设置barCategoryGap无效,为何?

7

barCategoryGap失效的临时解决方案:

通过滚动条的缩放达到控制间距的效果

1.设置滚动条(可以隐藏)

2.设置滚动条的endValue控制一次显示的数量

5

可以通过动态设置图表高度实现