私はD3.jsを使い始めたばかりで、これを読んでいます:http: //alignedleft.com/tutorials/d3
棒グラフの作成に関するセクションでは、作成者は、ループ内の現在のデータを使用して長方形の塗りつぶし色のRGB値を指定する非常に簡単な例を示します。それはとても便利です。しかし、かなり制限されています。
たとえば、たとえば、データのさまざまな優先順位を示す特定のタイプのグラフがありました。したがって、値が高いほど、優先度が高くなります。優先度は、高、中、低、なしのそれぞれについて、赤、オレンジ、黄色、および緑の色で視覚化されます。
.attr('fill', function(d){})
次のように、メソッドでswitchcaseまたはif/elseを使用するのはかなり簡単です。
.attr('fill', function(d) {
if (percentage(d) <= 0.25) { // 0.25 is a percentage value representing the data
return 'green';
}
else if (percentage(d) <= 0.50) {
return 'yellow';
}
else if (percentage(d) <= 0.75) {
return 'orange';
}
else if (percentage(d) <= 1) {
return 'red';
}
});
しかし、データの強度に基づいて色自体の強度/色合いを動的に変更したい場合はどうなりますか?したがって、基本的な色の値を持つだけでなく、次の色にシフトする前に、データの強度に応じて色を異なる色合い(または彩度)にすることで、その色の範囲内のデータの強度を視覚化します。
私が仮定した1つの方法は、パーセンテージごとに両方の戦略を組み合わせることですが、データの1%パーセンタイル表現ごとにすでに持っている5つのifステートメントのそれぞれに25のifステートメントをネストする必要があることを意味します。それを行うためのより良い、より効率的な方法はありますか?
各色の色合いの数をもっと少ない数に制限できることは承知していますが、条件文をネストする以外に他の方法があるかどうかを確認したいと思います。