Echarts柱状图如何使用最小高度解决数据差距过大,且过滤数据为0的情况?

https://blog.csdn.net/qq_41137858/article/details/119327240?spm=1001.2014.3001.5501

barMinHeight是数字或者百分比配置,不是函数支持配置单个数据项的barMinHeight。

可以将echarts显示为svg,直接js操作dom将值为0的项设置为透明即可。效果如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~

img

<!DOCTYPE html>
<html>
<!-- 测试柱状图的最小长度 -->
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <div id="main" style=" width: 500px;height: 500px;margin: 0 auto;"></div>
</body>
<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
<!-- echarts版本:5.1.2 -->
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.js"></script>
<script>
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom, null, { renderer: 'svg' });
    var option;
    var data = [0, 10, 800]
    option = {
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow'
            },
        },

        xAxis: {
            type: 'value',
        },
        yAxis: {
            type: 'category',
            data: ['1', '2', '3']
        },
        series:
        {
            data: data,
            name: 'test',
            type: 'bar',
            stack: 'total',
            barMaxWidth: 50,
            barMinHeight:5,

        }
    };
    myChart.setOption(option);
    var paths = $('#main text:last').nextAll();//通过dom结构得到绘制的bar,注意echart版本变化可能生成的dom结构有变化,需要自己审核生成的dom结构修改这里的选择器
    data.forEach((v, index) => {//遍历数据,为0则设置对应的bar(svg的path)为透明实现隐藏
        if (v == 0) paths.eq(index).css('opacity', 0);
    });
</script>

</html>

这个我问题我也遇到过,我用双Y轴,左侧Y轴显示0-100,右侧Y轴(隐藏不显示)显示0-10,得多一步判断映射哪个轴?这算比较取巧的方法,楼主可以试一下