有人可以在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蓝色
但是我无法使用我读过的所有内容来构建有效的东西。
答案 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)
));
使用颜色,直到找到您喜欢的组合。在上面的示例中,只有异常值为红色,而其余的将遵循蓝色和绿色模式。
希望这有帮助!