对于我的轴,我有以下tickFormat
.tickFormat(data.map(function (d) {
if(ChartJourney.group_by == 'weeks') {
console.log(moment(d.date).format('YYYY-WW'));
return moment(d.date).format('YYYY-WW');
} else
return d.date;
}));
在控制台中我看到了:
2015-23
2015-24
2015-25
2015-26
但是在图表上我看到4个刻度都具有相同的格式,如:
2015-23,2015-24,2015-25,2015-26
为什么格式以逗号分隔,就像每个tick一样?特别是从控制台我只看到它循环了4次。
答案 0 :(得分:1)
删除data.map:
.tickFormat(function (d) {
if(ChartJourney.group_by == 'weeks') {
console.log(moment(d.date).format('YYYY-WW'));
return moment(d.date).format('YYYY-WW');
} else
return d.date;
});
.tickFormat可以接受函数或对象。使用函数时,将为每个数据点调用该函数。这就是你想要的。如果您不使用函数,则该值将用于每个tick。使用data.map时,将立即评估地图。您将使用映射的数组(不是函数)调用.tickFormat,该数组将用于每个tick。
答案 1 :(得分:0)
我不仅要根据@ Marcelo的帖子删除地图,而且还应该d
而不是d.date
:
.tickFormat(function (d) {
if(ChartJourney.group_by == 'weeks') {
console.log(moment(d).format('YYYY-WW'));
return moment(d).format('YYYY-WW');
} else
return d;
});