echarts bar series下的label position问题

今天在使用Echarts柱状图时,遇到了一个视觉优化问题。

解决前的Echarts柱状图代码片段:

{
    name:'最后一名',
    type:'bar',
    barWidth:40,
    data:[54,53,51,50,47,5],
    itemStyle:{
        normal:{
            color:'rgb(0,128,70)',
            label:{
                show:true,
                position:'inside',
                formatter:function(param){
                    if(param.dataIndex==0){
                        return '关\n节\n炎\n'+param.value;
                    }
                    if(param.dataIndex==1){
                        return '冠\n心\n病\n'+param.value;
                    }
                    if(param.dataIndex==2){
                        return '胃\n病\n'+param.value;
                    }
                    if(param.dataIndex==3){
                        return'胃\n病\n'+param.value;
                    }
                    if(param.dataIndex==4){
                        return '糖\n尿\n病\n'+param.value;
                    }
                    if(param.dataIndex==5){
                        return '冠\n心\n病\n'+param.value;
                    }
                },
                textStyle:{fontSize:18}
            }
        }
    }
}

效果图:

 

看到了吧,文字默认是在柱状中,但如果数据很小,文字就会击穿x轴,影响很大。

最理想的效果就是(文字以柱状的底部为基点,往上垒砌,这样就不会有击穿底部和顶部的可能了。)

理想效果图:

 

1. 为了理想,开始进击

我们首先看看echarts bar series下的label position的属性值都有哪些?

我特意在网上搜索,得知:

有这几个属性值,我尝试使用“top”代替“inside”。但依旧存在问题,文字击穿图表的顶部。

------(失败)继续搜索·······

我在Echarts官网的实例上看到这个position居然有坐标[x,y]的属性值来表示,但依旧无用,因为坐标原点是柱状的最高点,尼玛----为什么不是以柱状的底部呢?

------(失败)继续搜索........

我居然妄想,在每一个柱状中隐藏一个虚拟的高度为零的子柱状,在子柱状的top上放上文字,这样就解决了,(哈哈哈,太聪明了)----悲催,代码能够飘向宇宙,放弃这种尝试

------(失败)继续搜索........

再次在Echarts的gl实例中徘徊搜索。

 

2. 终于,我看到了这个柱状图:(曙光)

附上地址:http://gallery.echartsjs.com/editor.html?c=xHk8BJ26Ie

 

echarts bar series下的label position竟然有这个属性值:insideRight(柱状内部靠右)

曙光在我的脑海里擦出火花,类推应该是有insideBottom(柱状内部靠下)这个属性值的。

是的,这个属性值是存在的。哈哈哈,问题迎刃而解(跳舞中)。

 

3.insideBottom(柱状内部靠下)这个属性值

position:'inside'
转为:
position:'insideBottom'
效果图:

 
看着就是舒服。

 

4.总结

echarts bar series下的label position的属性值:

1:inside(自适应,柱状内部中央),top(柱状外的正上方),bottom(柱状外的正下方),left(柱状外的左边),right(柱状外的右边)
2:坐标[x,y](以柱状的顶部为原点)
3:insideTop(柱状内部靠顶部),insideBottom(柱状内部靠下方),insideRight(柱状内部靠右边),insideLeft(柱状内部靠左边)

 

---------------------------------------------------------------------------不关注我“象话”吗?

如有疑惑,请评论留言。

如有错误,也请评论留言。


版权声明:本文为qq_34908167原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。