我有简单的line chart。 由于某种原因,这不显示任何行,但是,我认为我的数据没问题。为什么呢?
data = '[{"date":"18-Jun-14","amount":"5"},{"date":"19-Jul-14","amount":"30"},{"date":"18-Aug-14","amount":"138"},{"date":"18-Sep-14","amount":"110"},{"date":"18-Oct-14","amount":"217"},{"date":"18-Nov-14","amount":"342"}]';
另一个问题是注释数据(下图),我从php脚本得到的,我应该改为适当的格式。这可能,或者我应该更改php输出?
/*data='[{"date":"2014-Jun-18","amount":"5"},{"date":"2014-Jul-18","amount":"30"},{"date":"2014-Aug-18","amount":"138"},{"date":"2014-Sep-18","amount":"110"},{"date":"2014-Oct-18","amount":"217"},{"date":"2014-Nov-18","amount":"342"}] ';*/
答案 0 :(得分:1)
问题在于日期格式化,请尝试
var parseDate = d3.time.format("%d-%b-%y").parse;
root1.forEach(function (d) {
d.date = parseDate(d.date);
d.amount = +d.amount;
});
你必须在缩放变量之前放置它,否则它无法正确使用你的数据。
d.amount = +d.amount;
是将值从字符串转换为整数所必需的。
对于第二个问题,你可以使用这个输出完全相同,只需解析它就把parseDate更改为
var parseDate = d3.time.format("%Y-%b-%d").parse;
使用php-data
查看http://jsfiddle.net/6Lxuh/4/的工作示例