2014-02-12 37 views
3

我想創建一個顏色函數,當值爲負值時顯示紅色,否則在barChart中顯示綠色。.colors在barChart dc.js中的功能只有兩個選項

這裏是我想出迄今:

var colorChoice = d3.scale.ordinal().domain(["positive","negative"]) 
            .range(["#00FF00","#FF0000"]); 
hitsPerDaybarChart 
.colors(function(d) {return(colorChoice((d.hits>0) ? "positive":"negative"));}) 

,但我得到了以下錯誤消息:TypeError: Object function (d) {return(colorChoice((d.pnl>0) ? "positive":"negative"));} has no method 'range'

歡迎所有幫助。謝謝。

+0

'hitsPerDaybarChart.colors(函數( d){return d.hits> 0?colorChoice(「positive」):colorChoice(「negative」);})'? – FernOfTheAndes

+0

我看到你正在做同樣的事情,其實......我的不好。我創建了一個簡單的例子嘲笑追加一個矩形和填充它的顏色,它的工作......所以,它絕對不是在這最後的聲明。 – FernOfTheAndes

+0

這裏是[小提琴](http://jsfiddle.net/5yxAF/),FWIW。 – FernOfTheAndes

回答

8

您將需要使用顏色存取器功能。

1)定義的色彩範圍和領域:

.colors(d3.scale.ordinal().domain(["positive","negative"]) 
           .range(["#00FF00","#FF0000"])) 

2)定義你的顏色訪問:

  .colorAccessor(function(d) { 
      if(d.value >0) 
       return "positive" 
      return "negative";}) 

希望這可以幫助的jsfiddle:http://jsfiddle.net/djmartin_umich/9ELWV/