x 轴上的数据休息一天(5 月 24 日的数据显示为 5 月 23 日,依此类推)(d3、nvd3)
Data on x-axis is one day off (data for May 24 is showing up as May 23, etc etc) (d3, nvd3)
这是一支笔:
http://codepen.io/cheapsteak/pen/MaYaNR
我正在通过 d3.select('#chart svg').datum(data)
加载数据
数据取自NPM的下载统计API,经过转换后,最终格式为
{
key: String
values: [{x: Date, y: Number}]
}
我从服务器获取的数据:
{
"node-sass": {
"downloads": [
{
"day": "2015-05-20",
"downloads": 25307
}
]
}
}
我的转换函数:
function processServerData(json) {
if (json.downloads && json.package) {
return {
key: json.package,
values: json.downloads.map( entry => { return {x: new Date(entry.day), y: entry.downloads}; })
};
} else {
return _.values(json).map(processServerData);
}
}
我得到的:
我传递的内容:
{"day":"2015-05-24","downloads":11296}
确实是输入格式“2015-05-24”的时区问题
given an ISO format such as "2014-03-07" it will assume a time zone of UTC.
用 /
替换所有 -
修复了它,所以不用
new Date(entry.day)
做
new Date(entry.day.replace(/\-/g, '/'))
这是一支笔:
http://codepen.io/cheapsteak/pen/MaYaNR
我正在通过 d3.select('#chart svg').datum(data)
数据取自NPM的下载统计API,经过转换后,最终格式为
{
key: String
values: [{x: Date, y: Number}]
}
我从服务器获取的数据:
{
"node-sass": {
"downloads": [
{
"day": "2015-05-20",
"downloads": 25307
}
]
}
}
我的转换函数:
function processServerData(json) {
if (json.downloads && json.package) {
return {
key: json.package,
values: json.downloads.map( entry => { return {x: new Date(entry.day), y: entry.downloads}; })
};
} else {
return _.values(json).map(processServerData);
}
}
我得到的:
我传递的内容:
{"day":"2015-05-24","downloads":11296}
确实是输入格式“2015-05-24”的时区问题
given an ISO format such as "2014-03-07" it will assume a time zone of UTC.
用 /
替换所有 -
修复了它,所以不用
new Date(entry.day)
做
new Date(entry.day.replace(/\-/g, '/'))