2017-05-10 6 views
1

これをPlunkrとしました。各バーの合計値を表示したい場所です。現在、バーの各スライスの合計累積値が表示されています黒いテキスト)と最後の合計値を表示するには、各バーの最後に表示されている合計値を表示するだけです。d3jsに積み重なった棒グラフの合計値を表示する方法

私は

.text(function(d) { 
       if (d["x1_"+TEAM] != maxValue){ 
        "display", "none"; 
        } else { return formatText(d["x1_"+TEAM]) 
        } 
       }); 

ここで、この時の私の試みをコメントアウトしました。しかしmaxValueでの最大値は、もちろん組み合わせたすべてのバーの最大値です。

同様のソリューションが可能ですか、まったく新しい機能でデータを並べ替える必要がありますか?

ご協力いただきましてありがとうございます。

+1

これはあなたの欲しいものですか? https://plnkr.co/edit/iovKsrx0Eg4pTUWTDUaA?p=preview –

+0

はい、正確です!どうもありがとうございました。 –

答えて

1

スタックされた各バーの合計で選択を作成する方が簡単で、より良い方法があります。ここで

.text(function(d, i) { 
    if (i === textOnBar4.data().length - 1) return formatText(d["x1_" + TEAM]) 
}); 

:あなたはマジックナンバーなしでそれをしたい場合は、

.text(function(d, i) { 
    if (i === 2) return formatText(d["x1_" + TEAM]) 
}); 

または:しかし、あなたのコードを使用して、最小の可能な変更を適用し、ちょうど各積み重ね棒グラフのための第三の目的を示し、更新されたプランナーです:https://plnkr.co/edit/iovKsrx0Eg4pTUWTDUaA?p=preview

+0

ありがとう、超有用! –

+0

同じテキスト関数を更新セクションに入れると、最初の(または3番目の)オブジェクトのみが更新されます。 私の(非常に悪い)解決策はこれを行うことでした: '.text(function(d、i){if(i === 2 || i === 5 || i === 8 || i == = 11)return formatText(d ["x1 _" + TEAM])}) 'より洗練された解決策を知っていますか、あまりにも多くを求めていますか? –

+1

これは私が答えて、これを行うより良い方法があると言いました。ネストされたデータに基づいて単純な選択を作成します。 –

関連する問題