0
我有一些动态尺度的散点图,我有一些数据映射到linar颜色尺度,并且它的工作非常好。我尝试为某些离散数据设置一个序数色阶,但它为每个值输出相同的颜色。有序尺度category10将一切都映射到相同的颜色
这里的规模功能可按
var cScale = {
linear : function(arr, numFunc){
return d3.scale.linear()
.domain(d3.extent(arr, numFunc))
.range([colorRange.min,colorRange.max])
},
ordinal : function(arr, ordinalFunc){
return d3.scale.category10()
// .domain(d3.extent(arr, ordinalFunc))
}
}
使用如下
window.cScaleFunc = cScale.ordinal
fillCircleRef
.attr("r", function(d){
if(movieFilter(d))return 0;
return rScaleFunc(arr, rDataFunc)(rDataFunc(d));
})
.attr("fill", function(d){
return cScaleFunc(arr, cDataFunc)(cDataFunc(d));
})
输出
#1f77b4宝莱坞,#1f77b4好莱坞
我做了 var contextScaleC = cScaleFunc(arr,cDataFunc); fillCircleRef .attr( “补”,函数(d){ 回报contextScaleC(cDataFunc(d));} ) 这是否看行吗? –
是的,你写了window.cScaleFunc = cScale.ordinal 因此,每次调用cScaleFunc(arr,cDataFunc)它都会创建一个新的d3.scale.category10() – Cyril
嗯我也创建其他的动态以及基于变化数据,并希望保持标准的感觉(我意识到我不需要新的实例每次10类),但是这真的是一件坏事吗? –