У меня есть следующий набор данных:D3.js: рассчитать шкалу времени оси x для гистограммы?
var data = [
{
"air_used": 0.660985,
"datestr": "2012-12-01 00:00:00",
"energy_used": 0.106402
},
{
"air_used": 0.824746,
"datestr": "2013-01-01 00:00:00",
"energy_used": 0.250462
} ...
]
И я хочу нарисовать гистограмму (для air_used) и линейный график (для energy_used), которые выглядят так:
Моя проблема заключается в том, что на данный момент с использованием x-scale, который я использую, график выглядит следующим образом: в основном, бары находятся в неправильном положении, а последний стержень падает с графика:
Вот JSFiddle с полным кодом и рабочим графиком: http://jsfiddle.net/aWJtJ/4/
Чтобы достичь того, чего я хочу, я думаю мне нужно изменить й-масштаб, так что есть дополнительная ширина до первой точки данных и после последней точки данных и так, чтобы полосы сдвигались влево на половину ширины каждого бара.
Может ли кто-нибудь помочь мне разобраться, что мне нужно сделать с помощью x-scale?
Я попытался добавить дополнительный месяц в домен, который останавливает последний бар, падающий с конца графика, но он также добавляет дополнительный тик, который я не хочу, и он не исправляет положение линейного графика и тиков.
Если возможно, я хочу продолжить шкалу времени для оси x, а не порядковый масштаб, потому что я хочу использовать умные форматы титров D3 и синтаксические анализаторы даты, например. xAxis.ticks(d3.time.weeks, 2)
.
У меня есть базовое исправление, но (1) оно кажется довольно взломанным и (2) линия оси х теперь не идет туда, где она должна: http://jsfiddle.net/aWJtJ/5/ – Richard
Кроме того, месяцы отличаются по ширине, так как в этом вопросе: http://stackoverflow.com/questions/12186366/d3-js-evenly-spaced-bars-on-a-time-scale – Richard
Чтобы исправить месяцы, widths, вы должны подумать о создании порядкового номера оси в зависимости от месячной/месячной части метки времени, а затем с помощью настраиваемого форматирования указать метку тика. Затем вы можете использовать диапазоны диапазонов для обработки ширины полосы: https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands – reblace