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
該條形的堆??偤?code>2與我們的比較相匹配this.y == this.total
;
所以你應該直接使用。 formatter: function(){ return this.y == this.total || this.y === 0 ? "" : this.series.name;}
- 3 回答
- 0 關注
- 173 瀏覽
添加回答
舉報