我必须为每个日期创建具有可变宽度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达到预期的效果吗?
1条答案
按热度按时间2guxujil1#
您需要使用连续刻度,如
scaleLinear
,否则它将无法工作,因为有序刻度无法在值之间进行插值。把它想象成一个索引为0、1、2的数组。没有索引0.5或1.5,因为序数是离散的整数值。