2013-06-27 40 views
1

This is what i want to achieve 圖像指示70%,當x = 0.7梯度​​細胞acording至百分比??百分比是通過一些陣列計算的值

觀察此小提琴:http://jsfiddle.net/jayeshjain24/ddfsb/1/

根據該框內的值,梯度應該appear.The以下細節有什麼應該做:::一些信息

Formula------> (x/1)*100=Percentage.(this determines the % of gradient!!!) 
x will vary from 0 to 0.999 

其中X =您在盒(viz.0.06,0.09,0.9等)。這些值從VAR數據,其是具有第一元件陣列來看到的值=一些隨機ID(忽略此)第二個元素爲多維或簡單數組()!!!你在框中看到的所有值都是數組的第二個參數

我想要的是使用上述公式計算基於該值的百分比,然後顯示它比例像我對上面的圖片做的那樣。

COLOR-CODE for above image--->background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(30,87,153,1)), color-stop(67%,rgba(28,31,178,1)), color-stop(80%,rgba(144,192,229,1))); /* Chrome,Safari4+ */ 

生成從 - >http://www.colorzilla.com/gradient-editor/

--------------------------------- --------------------------簡化----------------------- --------------------------

Lets say if value==0.5 

如果該細胞是從第一行 - >然後

  1. 假定藍色作爲父顏色(所以漸變將是b略和輕 藍色,可以有任何你希望的父顏色,但梯度應相對 )
  2. 使用上述式--->給你50%轉換0.5百分比...所以 50%的深藍色,然後由50%淡藍色。
+0

不知道我是否明白你的意思。你是否想用單值背景顏色填充單元格,或者是否需要漸變作爲背景? –

+0

@LarsKotthoff --->是的,漸變作爲單個單元格的背景......因爲每個單元格都有一些不同的值!!!但是數組的值決定了我的水平漸變將如何看起來,即給它一個米的外觀。我清楚了嗎? ? –

+0

該梯度是如何確定的?什麼是開始和結束顏色以及單元格編號指定的是什麼? –

回答

1

您可以動態生成相同的webkit-gradient字符串。我已經用你的意思更新了你的jsfiddle here。相關代碼如下。

.style('background', function(d) { 
    if(d.value) { 
    var col = d3.rgb(colors(d.value[0])); 
    return "-webkit-gradient(linear, left top, right top, color-stop(0%," + 
      col.darker(3) + "), color-stop(" + (d.value[2] * 100) + "%," + 
      col + "), color-stop(100%," + col.brighter(3) + "))"; 
    } else { 
    return "white"; 
    } 
}) 

的方法.darker().brighter()由D3提供和他們說的去做 - 你可能需要使用自定義的開始/結束的顏色來替代它們。

+0

Bingooooo !!!! finally ... 但是漸變可以變得更尖銳一點,這樣它們就可以表示一個更準確的值了,----這就是我的界限,你怎麼能夠爲橙色生成橙色漸變,藍色的藍色漸變....以及黃色和綠色的漸變 –

+0

您可以通過將終點移近來使其更加銳利 - http://jsfiddle.net/ddfsb/4/ –