我有一個用d3構建的標準50態地圖,其中我根據各種數據集動態着色狀態。無論數據集是什麼,這些值都以0到1的比例進行歸一化,其中1對應於具有最高值的狀態。我正在尋找一種方法來使用歸一化數據點的值來計算狀態的陰影。使用HSL或RGB製作動態漸變
過去,我選擇了我喜歡的基本顏色 - 比方說#900 - 並將每種狀態的fill
設置爲該顏色,將opacity
設置爲標準化值。這個工程可以保存兩個問題:
- 當畫布有背景色時,它需要在每個陰影狀態下繪製一個空白狀態;和
- 淡出顏色這樣可以看看糊狀
但我真的很喜歡能夠設置彩色動態而不是處理箱的數據和梯度的RGB值的設定數組。所以我想知道是否有更好的方法。如果替代顏色系統可以更好地工作,我可以照顧轉換。
D3具有烤入HSL轉換器,所以我想這:
// 0 <= val <= 1
function colorize(val) {
// nudge in the extremes
val = 0.2 + 0.6 * val;
return d3.hsl(0, val, 1 - val);
}
它工作正常 - 這是地圖捕魚作業,這是最普遍的在緬因州和俄勒岡州的 - 但我懷疑有更好的方法。想法?
需要,沒有意識到d3可以做到 - 非常酷。謝謝! – 2013-05-07 20:16:21