Javascript d3 ticks函数返回的时间刻度数与输入/参数中指定的时间刻度数不同。(简体中文)
我正在尝试用React JS构建一个响应图表,我对D3不是很熟悉。我注意到在我的代码中,ticks函数返回的tick数与我指定的不同。这是我的密码:Javascript d3 ticks函数返回的时间刻度数与输入/参数中指定的时间刻度数不同。(简体中文),javascript,reactjs,d3.js,charts,Javascript,Reactjs,D3.js,Charts,我正在尝试用React JS构建一个响应图表,我对D3不是很熟悉。我注意到在我的代码中,ticks函数返回的tick数与我指定的不同。这是我的密码: const pixelsPerTick = 90; const xScale = d3.scaleTime() .domain([moment(xDomain[0]).toDate(), moment(xDomain[1]).toDate()]) .range(xRange); const ge
const pixelsPerTick = 90;
const xScale = d3.scaleTime()
.domain([moment(xDomain[0]).toDate(), moment(xDomain[1]).toDate()])
.range(xRange);
const getXOffset = value => xScale(moment(value).toDate());
const getYOffset = value => {
const elementIndex = yDomain.findIndex(item => item === value);
return (elementIndex + 1) * 50;
};
const numberOfTicksTarget = Math.max(
1,
Math.floor(
(xRange[1] - xRange[0]) / pixelsPerTick
)
);
const xTicks = useMemo(() => {
return xScale.tickValues(numberOfTicksTarget)
.map(value => ({
value,
xOffset: xScale(moment(value).toDate());
}));
}, [
xDomain.join("-"),
xRange.join("-")
]);
此外,即使我写了const pixelsPerTick=90每个刻度的像素似乎并不总是相同的。另外,如果numberOfTicksTarget为11,则xTicks将返回一个包含11个元素的数组