1
我不知道我在這裏做錯了什麼。 scalePoint工作並且值與軸線一致,但scaleBand由於某種原因會左移。scaleBand()將值左移
我的小提琴: https://jsfiddle.net/go0r0yco/
從我的文件中的代碼的選定部分:
var x = d3.scaleBand()
.range([0, width]);
var y = d3.scaleLinear()
.range([height, 0]);
var xAxis = d3.axisBottom()
.scale(x);
var yAxis = d3.axisLeft()
.scale(y);
// the domain
x.domain(myData.map(function (d)
{
console.log(d.ball);
return d.ball;
}));
y.domain([0, d3.max(myData, function (d)
{
//console.log("our maxtime" + d.finaltime);
return d["ball data"]["final time"];
})]);
// the scatterplot
myChart.selectAll("dot")
.data(myData)
.enter()
.append("circle")
.style("fill", "orange")
.attr("r", 5)
.attr("cx", function (d)
{
return x(d.ball);
})
.attr("cy", function (d)
{
if (!d["ball data"]["final time"]) { return height/2 } else {
return y(d["ball data"]["final time"]);}
});
嗯,也許不是最好的解決辦法,但'.attr ( 「CX」,函數(d,i)的 \t \t {//添加一半的帶寬 \t \t \t返回X(d.ball)+(x.bandwidth()/ 2); \t \t})'https://jsfiddle.net/mkaran/nn6bnzhe/1/。希望這可以幫助。 – mkaran