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