我有一个如下所示的数据集:
data_set=[{date: '2012,09,04,10,54,53'},
{date: '2012,09,05,10,58,57'},
{date: '2012,09,11,10,44,05'},
{date: '2012,09,04,11,25,30'},
{date: '2012,09,04,10,28,55'},
{date: '2012,09,04,12,30,17'},
{date: '2012,09,04,11,14,23'},
{date: '2012,09,04,12,16,10'},
{date: '2012,09,04,11,57,46'},
{date: '2012,09,04,11,15,53'},
{date: '2012,09,04,11,25,43'},];
我正在尝试制作一个散点图,其中 x 轴是一天中的时间,而不是完整日期。如何让 x 轴仅显示 24 个周期,以及如何让日期点沿 x 轴正确绘制?声音我正在尝试使用 d3.time.scale() 还是应该简单地使用 d3.linear.scale() 并解决格式化问题?我想做的是让一周中的每一天都是沿 y 轴的不同点。一个示例图在这里。在此示例中,10 = 星期一、20 = 星期二等。不同的符号代表一周中特定日期的不同日期。
因此,我编写了以下函数来从字符串中提取日期,尤其是小时和分钟:
var date_format = d3.time.format("%Y,%m,%d,%H,%M,%S");
var time_format = d3.time.format("%X");
使用这些函数,我编写了以下语句:
dd = date_format.parse('2012,01,02,12,39,45')
Mon Jan 02 2012 12:39:45 GMT-0800 (PST)
time_format(dd)
"12:39:45"
所以在控制台中,我可以看到我获取了一个字符串,将其转换为日期,然后使用该日期生成时间。当我尝试设置域时,d3.time.scale() 似乎不接受我传递给它的时间。
http://i.imgur.com/DRtSW.png “完成的情节”