我是NVD3的新手。我正在尝试从销售人员的矩阵报告中获取数据,并在折线图和条形图中显示该数据。好像我正在获取没有数据的图表。在特定位置的悬停工具提示上,它显示NAN。因此,我认为我无法在报告中正确地构成数据。因此,您对此有何建议,如果可以,也可以粘贴代码。提前致谢。我以此为参考并尝试过。http://nvd3.org/examples/linePlusBar.html
正如您在评论中所说,使用测试数据,一切都可以正常工作。然后,问题肯定出在您解析数据的方式上。另外,您在使用nvd3时遇到一些问题。
快速查看您的代码会显示一些问题:
下面的行在每个请求中写入“ + matrixReportId”:
$.ajax('/services/data/v29.0/analytics/reports/+matrixReportId', {
我想您可能想写的内容matrixReportId
,对不对?因此,您需要这样做:
$.ajax('/services/data/v29.0/analytics/reports/' + matrixReportId, {
您正在对一个空值数组执行chartData.push()。仅在将元素添加到数组后才应该这样做:
$.each(response.groupingsDown.groupings, function(di, de) {
var values = [];
$.each(response.groupingsAcross.groupings, function(ai, ae) {
values.push({"x": ae.label, "y": response.factMap[de.key+"!"+ae.key].aggregates[0].value});
});
chartData.push({"key":de.label, "values": values});
});
您应该不重新创建图表每次数据的变化。您只应更改原点,然后更新图表。
您忘记了调用nv.utils.windowResize()。
我编辑了jsfiddle以合并这些更改。请对其进行测试:https : //jsfiddle.net/egLgaxc4/5/
另外,最好不要使用jquery,因为d3 + jquery可能会变得很沉重。D3有自己的ajax(请参阅d3.xhr),foreach和选择方法。您真的不需要在这里使用jquery。
在这里,我仅使用d3创建了一个示例:https : //jsfiddle.net/fwuzk3y6/5/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句