Я пишу простую гистограмму, которая рисует прямоугольный элемент для каждой части данных. Это часть моего кода без чешуи, который работает отлично:D3 весы испортили мою гистограмму
const rect = svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", (d, i) => (i*4))
.attr("y", (d) => h - d[1]/50)
Однако, если добавить у масштаба, мои бары перевернуться, и если я добавлю й масштаб, я вижу только один бар. Вот мой код с весами:
const xScale = d3.scaleLinear()
.domain([0, d3.max(dataset, (d) => d[0])])
.range([padding, w - padding]);
const yScale = d3.scaleLinear()
.domain([0, d3.max(dataset, (d) => d[1])])
.range([h - padding, padding]);
//some other code
const rect = svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", (d, i) => xScale(i*4))
.attr("y", (d) => yScale(d[1]/50))
Вот мой CodePen чешуйками, это то, что он выглядит следующим образом: http://codepen.io/enk/pen/vgbvWq?editors=1111
Я был бы очень признателен, если кто-то сказал мне, что я делаю неправильно.
Если вы хотите, чтобы xAxis представлял время, вы должны использовать 'scaleTim e' вместо 'scaleLinear'. –