我让用户从下拉列表中选择四个数字系列中的一个,以驱动气泡图中圆形的着色。 (有半径为,x和y类似的下拉列表。)dc.js制作两种颜色之间的颜色范围
d3.select("select#colour").on('change',function(d) {
var tempIndex = this.selectedIndex;
yearlyBubbleChart.colorAccessor(function (p) {
return p.value[optionArray[0][tempIndex]];
});
yearlyBubbleChart.colors(colorbrewer[optionArray[7][tempIndex]][optionArray[8][tempIndex]]);
yearlyBubbleChart.colorDomain([optionArray[5][tempIndex][0], optionArray[5][tempIndex][1]]);
});
要做到这一点,我使用colorAccessor,颜色和colorDomain,按照这个顺序。 (在某些情况下,我注意到这三个问题的顺序)。我希望用户能够选择最小和最大颜色,并从中驱动着色。为此,我需要为两种颜色的气泡着色,例如[ '白色', '蓝']。较高的数字值会比例更蓝。
这似乎是一件非常容易的事,但我无法解决它。提供两种颜色的数组通常用于交替,在气泡图中,最小气泡为白色,其余为蓝色。如何通过输入两种颜色来获得连续的颜色范围?
谢谢
这里的关键是,[colorMixin.colors()](http://dc-js.github.io/dc.js/docs/html/dc.colorMixin.html #colors__anchor)可以采用任何类型的d3比例。如果你传递给它一组颜色,它将创建一个[序号级别](https://github.com/d3/d3-3.x-api-reference/blob/master/Ordinal-Scales.md#ordinal)对于你来说,但是你可以使用下面的@Paul显示的线性比例尺或者[量化比例尺](https://github.com/d3/d3-3.x-api-reference/blob/master/Quantitative- Scales.md#quantize-scales)如果您将连续域映射到一组离散的颜色。 – Gordon
是的,如果你[看看混色的源代码](https://github.com/dc-js/dc.js/blob/develop/src/color-mixin.js),你会看到为什么需要在'colorDomain'之前调用'colors' - 前者替换了比例尺,后者在当前比例上设置了一个参数。 – Gordon