我正在尝试使用D3堆栈图显示一些时间线。出现以下错误
错误:属性x:预期长度“NaN”。错误:属性宽度:预期长度为“NaN”。
下面是我改编的源代码:
$scope.createTimeline = function(callsSource, tag, nameField) {
var colorScale = d3.scale.ordinal().range(['#008000','#FF0000']).domain(['ok','ko']);
var chart = d3.timeline()
.rotateTicks(45)
.stack()
.itemHeight(12)
.itemMargin(2)
.showTimeAxisTick()
.tickFormat({format: d3.time.format("%X.%L"), numTicks:15, tickSize: 5})
.showTimeAxisTickFormat({stroke: "stroke-dasharray", spacing: "4 5"})
.colors( colorScale )
.colorProperty('status');
var svg = d3.select(tag).append("svg").attr("width", 950);
var listSeg = new Array();
var calls = callsSource.slice(0);
calls.reverse();
for (var i = 0; i < calls.length; i++) {
var seg = {status:(calls[i].retHttp == "200" ? 'ok' : 'ko'), times: [{label:calls[i][nameField]||"unknown","starting_time": calls[i].startDate||calls[i].endDate, "ending_time": calls[i].endDate||calls[i].startDate}]};
listSeg.push(seg);
}
svg = svg.datum(listSeg).call(chart);
};
控制台出现错误:
当我检查HTML页面时,我可以看到svg中的x和width属性是NaN
有什么需要帮忙的吗!
1条答案
按热度按时间lymgl2op1#
其原因是:
startDate
和endDate
不是时间戳。