Я задал вопрос раньше о d3, и они предложили мне использовать порядковый масштаб, это решило бы мои проблемы. Действительно, он решил мои проблемы, но знаю, что я застрял в другой проблеме...
Он отлично рисуется, но моя ось X полна текста. В качестве примера я хочу: 1900 1904 1908 1912... но я получил: 190119021903190419051906. Как видите, это не ясно. (это всего лишь пример, если бы были только даты, я мог бы использовать другую шкалу). Везде, где я смотрел, они говорят о axis.ticks(number). Но это не работает. Ничего не происходит, и я все равно получаю тот же результат. Я взломал результат, чтобы получить меньшие результаты по оси x:
var str = [];
var i = 0;
while(i < data.length) {
str.push(data[i].age);
i=i+8;
}
x.domain(str);
Но если я это сделаю, он создаст случайную строку и больше не рисует ее. Не знаю, как это решить. Это простая линейная диаграмма, ничего сложного, единственная трудность (для меня) - порядковая шкала...
Надеюсь, кто-то может мне помочь.
так определяется моя ось x и x:
var x = d3.scale.ordinal()
.rangeRoundBands([0, width-150],1);
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom")
без цикла while (неприятный взлом), у меня была следующая строка, определяющая x.domain:
x.domain(data.map(function(d) { return d.age; }));