我剛開始用D3.js,而且我通過這個閱讀:http://alignedleft.com/tutorials/d3具體數據轉換成顏色D3.js
在上創建一個條形圖的部分,筆者給出了一個很簡單的例子使用循環中的當前數據來指定矩形的填充顏色的RGB值。這非常有用。但是相當有限。
說,例如 - 我有一個特定類型的圖表,顯示各種數據的優先級。所以,價值越高,優先級越高。優先級將分別用高,中,低,無紅色,橙色,黃色和綠色分別顯示。
這是相當簡單的使用if/else語句在.attr('fill', function(d){})
方法,像這樣一個開關的情況下或做:
.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';
}
});
但是,如果我想動態改變顏色的強度/遮陽什麼本身基於關於數據的強度?因此,不僅將它有基本顏色的值,但通過使根據數據轉移到下一種顏色之前的強度的顏色的不同色調(或飽和度)可視化彩色範圍內的數據的強度。
我假設的一種方法是爲每個百分比組合兩種策略,但這意味着我必須有25個if語句嵌套在5個if語句中的每個語句中,每個1%百分點表示數據。有沒有更好,更有效的方法?
我知道,我可以限制每個顏色數量較少的色調的數量 - 但我想看看是否有任何其他的方式來做到這一點,除了嵌套條件語句。
你是這麼快就回答這個明星,這是絕對有幫助!謝謝。 – razorbeard 2013-02-28 03:07:54
只是爲了簡潔起見,我所需要做的只是指定一個介於0-100之間的動態色調,而不是飽和度和亮度 - 在該梯度範圍內,紅色,橙色,黃色和綠色均符合該順序。 – razorbeard 2013-02-28 03:24:39