gpt4 book ai didi

javascript - d3.js : Generating axis ticks for ordinal values

转载 作者:行者123 更新时间:2023-12-04 08:20:27 24 4
gpt4 key购买 nike

我想在 x 轴上使用序数刻度,名称作为值。

let xScale = d3.scaleOrdinal()
.domain(['Tony', 'Jessica', 'Andrew', 'Emily', 'Richard'])
.range([0, bodyWidth]);


container.append('g')
.style('transform', 'translate(0px, 200px)')
.call(d3.axisBottom(xScale))
.tickFormat(clients, (d)=> d + ' position')
.tickValues( clients.map(d => d.name) );
但我收到错误:

TypeError: container.append(...).style(...).call(...).tickFormat isnot a function.


我正在使用 d3.js V5。

最佳答案

情侣问题。
首先,您有 .tickFormat.call 返回时被调用而不是 .axisBottom链。这就是为什么您认为它不是函数的原因,因为 .call不会返回轴。
二、.tickFormat接受一个参数,该参数是在创建每个轴刻度时要调用的函数。您正在将数据传递给它并作为访问器函数。每个域值将传递给 .tickFormat功能。

<!doctype html>

<html>

<head>
<script src="https://d3js.org/d3.v6.js"></script>
</head>

<body>
<svg width="800"></svg>
<script>
let container = d3.select('svg');

let xScale = d3.scaleOrdinal()
.domain(['Tony', 'Jessica', 'Andrew', 'Emily', 'Richard'])
.range([0, 100, 200, 300, 400]);

container.append('g')
.style('transform', 'translate(100px, 0px)')
.call(
d3.axisBottom(xScale)
.tickFormat(function(d) {
console.log(d + ' position');
return d + ' position';
})
);
</script>
</body>

</html>

关于javascript - d3.js : Generating axis ticks for ordinal values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65526423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com