我很困惑日期由酒窝处理(或者可能只是D3)。
我的问题可分为两个问题:
我的日期在我的csv文件中以%Y-%m-%d %H:%M:%S
格式显示。为了将它们转换为日期对象,我目前使用的是与“vanilla”d3中相同的循环。
data.forEach(function (d) {
var format = d3.time.format("%Y-%m-%d %H:%M:%S");
d.Date = format.parse(d.Date);
});
有更快的方法吗?也许使用timeField function?还是dateParseFormat?我可能错了,但这些函数看起来像是处理日期的助手。
我想控制时间对象的主要原因是能够重新格式化它们。文档似乎表明可以使用tickFormat function。不幸的是我也没能使用它。我最好的猜测:
var x = myChart.addCategoryAxis("x", "Date");
x.tickFormat(d3.time.format("%Y-%m")); // For example for a year-month format
仅返回
x.tickFormat不是函数
非常感谢,
济
答案 0 :(得分:3)
时间格式与时间轴有关。如果要使用时间轴,则不需要循环,只需使用:
myChart.addTimeAxis("x", "Date", "%Y-%m-%d %H:%M:%S", "%Y-%m");
其中“%Y-%m-%d%H:%M:%S”是您的输入,“%Y-%m”是您的输出格式。 “x.tickFormat不是函数”错误的原因是它不是:)。如果您愿意,可以将时间轴使用的tickFormat设置为属性,但如果使用上述工厂方法则不需要它:
myTimeAxis.tickFormat = "%Y-%m";
但这仅适用于时间轴。
可以在此处找到时间轴的示例:
http://dimplejs.org/advanced_examples_viewer.html?id=advanced_time_axis
希望有所帮助
约翰