.colors function in barChart dc.js with only two options

bar-chart, colors, d3.js, dc.js

Solution

You will want to use the `colorAccessor` function.

1) Define your color range and domain:

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

2) Define your color accessor:

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

Hopefully this JSFiddle helps: http://jsfiddle.net/djmartin_umich/9ELWV/

Note: with the latest versions of d3.js, use `d3.scaleOrdinal()` instead of `d3.scale.ordinal()`.

Problem

I want to create a color function which shows red when the value is negative and green otherwise in a barChart. Here is what I've come up with so far : ``` var colorChoice = d3.scale.ordinal().domain(["positive","negative"]) .range(["#00FF00","#FF0000"]); hitsPerDaybarChart .colors(function(d) {return(colorChoice((d.hits>0) ? "positive":"negative"));}) ``` But I get the following error message : `TypeError: Object function (d) {return(colorChoice((d.pnl>0) ? "positive":"negative"));} has no method 'range'`. All help welcome. Thanks.

Original source