JS d3 缩放时间不会产生正确的刻度
JS d3 scale time doesn't produce the correct ticks
我想根据开始和结束时间生成 ticks
。我正在使用 d3 中的 scaleTime
函数,传递 domain
和 range
.
const scale = scaleTime().domain([1625733909077, 1625733911965]).range([0, 1317]);
当我登录 scale.ticks()
时,我得到了这个输出:
这似乎是正确的,因为大约需要 2.5 秒。
但是当我尝试从每个中提取 ms
值时:
console.log(ticks.map((v) => v.getMilliseconds()).sort());
我得到这个输出:
[0, 0, 200, 200, 200, 400, 400, 400, 600, 600, 600, 800, 800, 800]
这不是我所期望的。 在这种情况下我期望的结果是:
[0, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000, 2200, 2400, 2600]
我做错了什么?
我认为它正在按预期工作。 getMilliseconds
不会 return 1000 或以上。那是几秒钟。该函数不会将秒转换为毫秒。
根据您的评论,您似乎想要一个从您的秤域最小值算起的毫秒数数组。
ticks.map(x => x - ticks[0])
我想根据开始和结束时间生成 ticks
。我正在使用 d3 中的 scaleTime
函数,传递 domain
和 range
.
const scale = scaleTime().domain([1625733909077, 1625733911965]).range([0, 1317]);
当我登录 scale.ticks()
时,我得到了这个输出:
这似乎是正确的,因为大约需要 2.5 秒。
但是当我尝试从每个中提取 ms
值时:
console.log(ticks.map((v) => v.getMilliseconds()).sort());
我得到这个输出:
[0, 0, 200, 200, 200, 400, 400, 400, 600, 600, 600, 800, 800, 800]
这不是我所期望的。 在这种情况下我期望的结果是:
[0, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000, 2200, 2400, 2600]
我做错了什么?
我认为它正在按预期工作。 getMilliseconds
不会 return 1000 或以上。那是几秒钟。该函数不会将秒转换为毫秒。
根据您的评论,您似乎想要一个从您的秤域最小值算起的毫秒数数组。
ticks.map(x => x - ticks[0])