d3.js 如何在d3 scaleOrdinal中处理缩放和平移

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

我必须为每个日期创建具有可变宽度x轴的自定义股价图。我使用d3.scaleOrdinal创建x轴

const xScale = d3.scaleOrdinal()
    .domain(["16-09-2022", "17-09-2022", "18-09-2022", "19-09-2022", "20-09-2022"])
    .range([0, 260, 500, 750, 900,1010]);

当使用几何方法缩放时,轴作为一个整体(即刻度、刻度标签、轴线)进行了缩放,我希望像scaleLinear一样工作。

svg.select("#xaxis")
.attr("transform", `translate(${transform.x},${margin.top})scale(${transform.k}) `)

有人能建议如何用d3 v7达到预期的效果吗?

2guxujil

2guxujil1#

您需要使用连续刻度,如scaleLinear,否则它将无法工作,因为有序刻度无法在值之间进行插值。
把它想象成一个索引为0、1、2的数组。没有索引0.5或1.5,因为序数是离散的整数值。

相关问题