3 回答
TA贡献1850条经验 获得超11个赞
TA贡献1797条经验 获得超4个赞
我认为最简单的解决方案是将this.y
与 进行比较this.point.stackTotal
。如果值相同 - 隐藏文本。
演示: https: //jsfiddle.net/BlackLabel/0ows79bm/
formatter: function() {
if(this.y === this.point.stackTotal) {
return ''
}
return this.series.name;
},
TA贡献2016条经验 获得超9个赞
您的dataLabels.formatter()
实施在某种程度上是错误的。
这是发生的事情:
this
y value
为条形图上的每个堆栈返回一个对象。您的目标应该是了解每个条形图的总数是如何求和的。因此,最好的选择是尝试检查每个堆栈传递的每个数据的总和是否为y
。这是一个例子:
从上图中,我刚刚使用了你的代码和console.log(this)
里面的formatter()
. 该模式非常清晰,您必须将 的每个值y
与条形图堆栈的整个总数进行比较。
这样做this.y == this.total
应该告诉您当前实例中的数据是否实际上总计为条形图堆栈的整个总数。正如您在图片中看到的那样,y=2
该条形的堆栈总和2
与我们的比较相匹配this.y == this.total
;
所以你应该直接使用。 formatter: function(){ return this.y == this.total || this.y === 0 ? "" : this.series.name;}
- 3 回答
- 0 关注
- 106 浏览
添加回答
举报