1
我是新來的d3,我嘗試做一個堆積/分組直方圖。d3 - 調用函數後顏色改變
我定義一個全局顏色定義是這樣的:
var c_gender = d3.scale.ordinal()
.domain(["missing", "present"])
.range(["#54278f", "#DADAEB"]);
我用它來填充rects在我的柱狀圖(5個rects 2可變= 10個rects如果分組和5,如果堆疊)。所有的工作正常,但我注意到,顏色的領域已被改變。我在其他圖表中使用此顏色定義,所以域名不正確。 使用顏色修改我rects的風格之後,更值被添加到顏色的像這樣的域名:
var dataset = [
[
{ x: 0, y: missing_age_array.length },
{ x: 1, y: missing_gender_array.length },
{ x: 2, y: missing_weight_array.length },
{ x: 3, y: missing_height_array.length },
{ x: 4, y: missing_ethnicity_array.length }
],
[
{ x: 0, y: present_age_array.length },
{ x: 1, y: present_gender_array.length },
{ x: 2, y: present_weight_array.length },
{ x: 3, y: present_height_array.length },
{ x: 4, y: present_ethnicity_array.length }
]
];
data_stack = d3.layout.stack()(dataset);
...
console.log(c_gender.domain());
var layers = vis.selectAll("layer")
.data(data_stack)
.enter().append("g")
.style("fill", function(d, i) { return c_gender(i/(n - 1)) ; })
.attr("class", "layer");
console.log(c_gender.domain());
...
和執行console.log結果是:
["missing", "present"]
["missing", "present", 0, 1]
我不知道這個解釋是否清楚..但是有人可以幫助我理解爲什麼調用函數後顏色的域會發生變化?
TYIA -monica
MMH確定..謝謝! – Monica