d3.js D3两个数字之间的线性刻度

dfty9e19  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(140)

我想generete规模与d3(v7)之间的180和360(含)与4个刻度。实际上我需要一个规模与值/刻度:180、240、300和360。
我烦这个:

d3.scaleLinear()
    .domain([180, 360]).ticks(4)

但我得到的是:

[200, 250, 300, 350]

是否有人知道如何生成刻度以获得上面提到的刻度[180, 240, 300, 360]

已编辑

我尝试为一些图表生成刻度/轴:

const yScale = d3.scaleLinear()
      .domain([180, 360])
      .range([containerHeight, 0]);

const yAxis = d3.axisLeft(yScale)
      .ticks(4);

svg.append('g')
      .call(yAxis);

正如你所看到的,坐标轴上的刻度是错误的。我得到的不是180,240,300和300,而是200,250,300和350

bvk5enib

bvk5enib1#

如果你只需要一个数组,其中的值有一个开始,结束和计数,你不需要d3。

const ticks = 4;
const start = 180;
const end = 360;

console.log(Array.from({length: ticks}, (_, i) => i *  (end - start) / (ticks - 1) + start))

这将创建数组[180,240,300,360],因此只需插入该数组,而不是像下面通过tickValues所做的那样插入d3代码...
第一个

相关问题