[英]d3.js gantt chart issue
var taskTypes = ["slot1", "slot2", "slot3","slot4","slot1","slot2","slot6"];
什么时候
var y = d3.scale.ordinal()
.domain(taskTypes)
.rangeRoundBands([ 0, height - margin.top - margin.bottom ], .1);
我在做
var rectTransform = function(d) {
return "translate(" + x(d.termStartDate) + "," + y(d.slotName) + ")";
};
一切顺利,但现在我正在服用
var y = d3.scale.ordinal()
.domain(d3.range(0, taskTypes.length))
.rangeRoundBands([ 0, height - margin.top - margin.bottom ], .1);
现在
var rectTransform = function(d) {
return "translate(" + x(d.termStartDate) + "," + y(d.slotName) + ")";
};
其中d.slotName
= slot1, d.slotName
或slot3或任何其他值, y(d.slotName)
返回未定义,有什么建议如何使它工作?
按照这个答案 , y
范围的域是taskTypes
的数组索引。 这意味着:
y("slot3") = undefined
y(taskTypes.indexOf("slot3")) = 54 // Or some valid value
您需要确定d.slotName
在数组中的索引。 对于重复的值(例如"slot1"
),使用indexOf
效果不佳。 如果该项目多次出现,则indexOf方法返回第一次出现的位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.