У меня есть довольно простая линейная диаграмма, которую я использую для построения некоторых данных по времени. Это все работает нормально, однако проблема, которую мне нужно решить, - это когда графики по осям времени очень близки.D3 Интерполяционная диаграмма времени по времени
Рассмотрим следующие пункты данных:
{ "Id": 101, x:15, y: 10, "OriginDt": "2012-12-01T18:49:06"}
{ "Id": 101, x:15, y: 10, "OriginDt": "2012-12-02T28:49:06"}
{ "Id": 101, x:15, y: 10, "OriginDt": "2012-12-03T18:49:06"}
{ "Id": 101, x:15, y: 10, "OriginDt": "2012-12-04T08:10:06"}
{ "Id": 101, x:15, y: 10, "OriginDt": "2012-12-04T09:21:06"}
{ "Id": 101, x:15, y: 10, "OriginDt": "2012-12-04T11:32:06"}
Для первых 3 точек на графике выглядит отлично, но как только он получает данные, что происходит в течение короткого промежутка времени данных начинает получать сгрудились и очень трудно оценить на графике.
Я пытаюсь найти образец онлайн, который занимается чем-то подобным, но еще не нашел его.
Я пробовал использовать основные команды интерполяции на осях, но они не работают.
Как я могу изменить свои топоры:
var yAxis = d3.svg.axis()
.tickSize(-width).tickPadding(10)
.scale(y)
.orient("left");
Чтобы «разложить» точку в этих ситуациях?
Трудно точно сказать, но это звучит, как вы хотите, масштаб времени (например, «миллисекунд на пиксель») варьируется от одного региона линии диаграммы к следующему, в зависимости от плотности данных. Это правильно? Если это так, это можно сделать, установив для массива 'domain()' и 'range()' массивы с более чем двумя элементами, как это обычно бывает. – meetamit
Да, вы правы с точки зрения требований, и теперь вы упоминаете подход к масштабам, который имеет смысл. Я делал подобное с масштабами в другом месте ... – Jammer