我创建了自己的d3-time
interval并将其添加到切换时间间隔example(移植到此jsfiddle)。
但是我对结果不满意。未显示两个条之间的间隙。
我希望其他所有间隔都带有间隙。我怀疑自定义间隔的实现是错误的,但是我无法弄清楚问题出在哪里。 我在另一个项目中使用了此实现,却发生了相反的情况:间隙最大,条形很小。
var threeMonthsInterval = d3.timeInterval(
function (date) {
date.setDate(1);
date.setHours(0, 0, 0, 0);
var currentMounth = date.getMonth()
if (currentMounth <= 2) {
// 'Q1';
date.setMonth(0)
} else if (currentMounth > 2 && currentMounth <= 5) {
// 'Q2';
date.setMonth(3)
} else if (currentMounth > 5 && currentMounth <= 8) {
// 'Q3';
date.setMonth(6)
} else {
// 'Q4';
date.setMonth(9)
}
},
function (date, step) {
date.setMonth(date.getMonth() * 3 + step);
},
function (start, end) {
return (end.getMonth() - start.getMonth()) / 3 + (end.getFullYear() - start.getFullYear()) * 3;
},
function (date) {
return date.getMonth() * 3;
}
);
答案 0 :(得分:1)
计算两个日期之间数字的数字
function (start, end) {
return (end.getMonth() - start.getMonth()) / 3 + (end.getFullYear() - start.getFullYear()) * 3;
},
告诉dc.js要计划多少条,因此应该有多少条。
我尚未测试您的代码,因此可能还有其他问题,但是一年有四个季度,因此最后一个数字应该是4。