如何使用'月'作为键在d3中使用nest,但我的csv文件包含整个日期?

Rak*_*van 1 csv date d3.js

           var data = d3.nest()
          .key(function(d) { return d.date;})
          .rollup(function(d) { 
           return d3.sum(d, function(g) {return g.something; });
          }).entries(csv_data);
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我可以按日期进行分组,格式为yyyy-mm-dd,但我想使用月份作为键进行分组.我该怎么做呢 ?

Ben*_*ate 10

您可以使用内置方法d3.timeMonth()获取日期的第一天,例如:

d3.nest()
  .key(function(d){ return d3.timeMonth(d.date); });
Run Code Online (Sandbox Code Playgroud)

如果d.date还不是javascript Date对象,则必须先将其解析为一个.

var date_format =  d3.timeFormat("%Y-%m-%d");
csv_data.forEach(function(d, i) {
    d.date = date_format.parse(d.date);
};
Run Code Online (Sandbox Code Playgroud)