我使用D3.js散点图来显示根据时间段的工作量。我想把点放在开始和结束日期之间的中间日期为每一个时期。我得到的数据如下所示:
period, amount, startDate, endDate
1, 5, 26/11/1982, 2/6/1989
2, 6, 2/6/1989,2/1/1990
3, 11, 2/01/1990,20/6/1999
我试着用
在图上映射点.attr("cx", function(d) { return xScale(new Date(d.endDate)) - xScale(new Date(d.startDate)) * 0.5 })
但这不起作用。我错过了什么?
两个给定点之间的中点为:
middleX = (x1 + x2) / 2;
在你的例子中:
d => {
const xFrom = xScale(new Date(d.startDate));
const xTo = xScale(new Date(d.endDate));
return (xFrom + xTo) / 2;
}