Cubism.js / d3.js规模和范围

时间:2013-07-27 21:47:18

标签: d3.js cubism.js

有人可以在cubism.js

中提供有关尺度和范围如何协同工作的一些见解
  .call(context.horizon()
             .extent([-100, 100])
             .scale(d3.scale.linear().domain([-10,10]).range([-100,100])
                   )
     );

例如上面的代码是做什么的?如果使用随机数生成器生成值(数字在-10到10之间)

我知道范围用于设置最大值和最小值。

我知道如何定义比例,例如:

var scale = d3.scale.threshold().domain([100]).range([0,100])
console.log(scale(1)) // returns 0
console.log(scale(99.9)) // returns 0
console.log(scale(88.9)) // returns 0
console.log(scale(100)) // returns 100

我在这里阅读了d3.scales http://alignedleft.com/tutorials/d3/scales/

我的主要问题是我想为我的数据定义阈值,非常简单 0-98红色 98-100粉红色 100蓝色

或者也许只是 0-99.99红色 100蓝色

但是我无法使用我读过的所有内容来构建有效的东西。

1 个答案:

答案 0 :(得分:1)

我猜你只想使用不同的颜色来表示数据中的异常。如果是这样,则无需创建域和范围。

您可以像这样创建自定义调色板:

var custom_colors = ['#ef3b2c', '#084594', '#2171b5', '#4292c6', '#6baed6', '#9ecae1', '#c6dbef', '#deebf7', '#f7fbff', '#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'];

这个调色板是使用this page上的调色板构建的,并在末尾添加了一个额外的红色。

然后只需调用这样的自定义颜色:

d3.select("#testdiv")
  .selectAll(".horizon")
  ...
  .call(context.horizon()
               .colors(custom_colors)
  ));

使用颜色,直到找到您喜欢的组合。在上面的示例中,只有异常值为红色,而其余的将遵循蓝色和绿色模式。

希望这有帮助!