Javascript d3图表抛出无法解释的错误
我正在用ajax调用创建一些图表。它们中的大多数都工作得很好,但有些不工作,并且会抛出错误 我创建如下数据:Javascript d3图表抛出无法解释的错误,javascript,d3.js,Javascript,D3.js,我正在用ajax调用创建一些图表。它们中的大多数都工作得很好,但有些不工作,并且会抛出错误 我创建如下数据: function buybox() {
function buybox() {
var cust_price = [],
buy_price = [];
for (var i = 0; i < data.length; i++) {
cust_price.push({x: parseInt(data[i].ssc) + '000', y: (isNaN(parseFloat(data[i].cust))) ? 0.00 : parseFloat(data[i].cust)});
buy_price.push({x: parseInt(data[i].ssc) + '000', y: (isNaN(parseFloat(data[i].buy))) ? 0.00 : parseFloat(data[i].buy)});
}
return [
{
area: true,
values: cust_price,
key: "Mein Preis",
color: "#81d4fa"
},
{
area: true,
values: buy_price,
key: "Buybox Preis",
color: "#7cb342"
}
];
}
对于未定义的错误d:
var pointPaths = wrap.select('.nv-point-paths').selectAll('path')
.data(voronoi);
pointPaths.enter().append('path')
.attr('class', function(d,i) { return 'nv-path-'+i; });
pointPaths.exit().remove();
pointPaths
.attr('d', function(d) {
/* error in this line */ if (d.data.length === 0)
return 'M 0 0'
else
return 'M' + d.data.join('L') + 'Z';
});
data.ssc是时间戳,data.buy/data.cust是价格
如果出现错误vb,则图形如下所示:
function buybox() {
var cust_price = [],
buy_price = [];
for (var i = 0; i < data.length; i++) {
cust_price.push({x: parseInt(data[i].ssc) + '000', y: (isNaN(parseFloat(data[i].cust))) ? 0.00 : parseFloat(data[i].cust)});
buy_price.push({x: parseInt(data[i].ssc) + '000', y: (isNaN(parseFloat(data[i].buy))) ? 0.00 : parseFloat(data[i].buy)});
}
return [
{
area: true,
values: cust_price,
key: "Mein Preis",
color: "#81d4fa"
},
{
area: true,
values: buy_price,
key: "Buybox Preis",
color: "#7cb342"
}
];
}
如果发生错误d,图形如下所示(看起来完全正常):
如果没有错误,它们看起来就是这样的:
(所有这些图表都有不同的数据,所以不要介意不同的视图)
无论发生上述哪种错误,图表都会按其应有的方式呈现,但如果出现错误,工具提示将不起作用。以下是工具提示生成器:
chart2.tooltipContent(function (key, y, e, graph) {
var date = new Date(parseInt(graph.point.x));
var day = date.getDate();
var month = date.getMonth() + 1;
var hours = date.getHours();
var minutes = "0" + date.getMinutes();
var formattedTime = day + '.' + month + '. - ' + hours + ':' + minutes.substr(minutes.length-2);
return '<div class="text-center" style="padding:10px;"><span class="text-center"><strong>' + key + '</strong></span><br><span class="text-center">' + formattedTime + '</span><br><span class="text-center"><strong>' + e + ' €</strong></span></div>'
})
chart2.tooltipContent(函数(键、y、e、图形){
变量日期=新日期(parseInt(graph.point.x));
var day=date.getDate();
var month=date.getMonth()+1;
var hours=date.getHours();
var minutes=“0”+date.getMinutes();
var formattedTime=day+'.+month+'.-'+hours+':'+minutes.substr(minutes.length-2);
返回“”+key+”
“+formattedTime+”
“+e+”€'
})
有人知道如何解决这个问题吗