.colors 在条形图 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'

欢迎所有帮助。谢谢。

您需要使用 colorAccessor 函数。

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/


注意:对于最新版本的 d3.js,请使用 d3.scaleOrdinal() 而不是 d3.scale.ordinal()

最新更新