SVGとD3を使用して棒グラフを作成していますが、それらに色を付ける方法について質問があります。このサイトや他のサイトで多くの質問を検索しましたが、同じ問題を抱えている人はまだ見つかりませんでした。
各バーの下部から1つの色(黄色など)で開始し、バーの高さが高くなるにつれて、2番目の色(赤など)を徐々に混ぜて、バーのポテンシャルが最大になるようにします。高さは2番目の色のみになります。この例では、潜在的な高さの半分であるバーの上部はオレンジ色になります。
任意の高さのバーに対して、必要に応じてバーに色を付ける独自の線形グラデーションを生成する関数を作成することができました。
ただし、このグラフは動的であり、データが更新されるとバーの高さが1秒間に何度も変化する可能性があるため、バーごとに新しいグラデーションを作成して適用することは明らかに効率的ではなく、更新に深刻な遅れが生じる可能性があります。バー。(静的テストケース以外で実際にこれを試したことがないことを認めます。そのため、最後の仮定について間違っている可能性があります。)
もちろん、静的グラデーションを使用すると、次のような結果が得られます。この場合、領域の高さではなく、バーの高さに応じて色が混合されます。
ただし、私の希望するシナリオでは、小さいバーの赤または紺はほとんどありません。
最後に、私の質問はこれです:する方法はありますか
- SVG領域自体に適用される単一のグラデーションを作成します(簡単)
- グラデーションがどういうわけかマスクされていると言っています(簡単)
- 次に、グラフのバーを表す長方形の下で選択的にマスクを解除しますか?(???)
または、私が見落としている他のテクニックはありますか?
ありがとう