Подтвердить что ты не робот

D3 + crossfilter: ось Date отображает пиксельные полосы

Я потратил большую часть дня, пытаясь получить красивую гистограмму по оси Date, в той мере, в которой я отправляю свой первый вопрос в stackoverflow.

bars are too thin

Ось и штабелирование - это именно то, что я хочу, но бары действительно тонкие для нет (для меня) очевидной причины. Другими словами, я бы очень признателен за помощь.

Здесь свернутая версия (я использую библиотеку dc.js, но я уверен, что проблемы решаются на имя d3 + crossfilters):

var jsonstr = [{"timestamp": "2013-06-13T11:04:24.729Z"},{"timestamp": "2013-06-17T11:03:24.729Z"},{"timestamp": "2013-06-17T11:02:24.729Z"},{"timestamp": "2013-06-19T11:02:14.129Z"}];

var ndx = crossfilter(jsonstr);

var timestampD = ndx.dimension(function (d) {
    return new Date(d.timestamp);
});

var timestampDG = timestampD.group(function (d) {
    return d3.time.day(d);
});

var barChart = dc.barChart("#dc-bar");
barChart.width(500)
    .height(250)
    .dimension(timestampD)
    .group(timestampDG)
    .x(d3.time.scale().domain([(new Date(2013,05,12)), (new Date(2013,05,20))]).nice(d3.time.day))
    .xAxis().tickFormat(function (x) {
        return x.getDate() + "/" + (x.getMonth()+1);
    });

dc.renderAll();
4b9b3361

Ответ 1

Я думаю, что проблема заключается в том, как вы используете dc.js; вы не указываете, что units должен быть включен barchart. Попробуйте следующее:

barChart
    .width(500)
    .height(250)
    .dimension(timestampD)
    .xUnits(d3.time.days)
    .ect

Ответ 2

Для кого-либо, у кого есть эта проблема, для которого ответ Адама, похоже, ничего не делает, убедитесь, что у вас нет эластичного набора, соответствующего true.