2013-05-22 3 views
1

Я пытаюсь составить диаграмму, показывающую количество результатов поиска, которые приложение накладывает на каждый день с помощью флота. Мой код (кстати он использует underscore.js):flot date bar chart alignment askew

flotDataSet = _.countBy(resultSet, function(file) { 
    var exactDate = new Date(parseInt(file.get('start_utc'), 10)); 

    //constructing a new date with 0 time so that all days get grouped together. 
    return new Date(exactDate.getUTCFullYear(), exactDate.getUTCMonth(), exactDate.getUTCDate()).getTime(); 
}); 

flotDataSet = _.map(flotDataSet, function(value, key) { 
    return [key, value]; 
}); 

$.plot(
    $graphDiv, 
    [{ 
     data: flotDataSet, 
     color: '#012D4C', 
     bars: { show: true, fillColor: '#024985', align: 'center', fill: 0.7, barWidth: DateUtil.msInDay/2 } 
    }], 
    { 
     grid: { color: '#012D4C' }, 
     xaxis: { 
      mode: 'time', 
      tickSize: [1, 'day'], 
      autoscaleMargin: 0.001 
     } 
    } 
); 

Выходы что-то вроде этого:

enter image description here

мне действительно нужно прутья к центру вокруг дня. Есть предположения? Благодаря!

+0

jsFiddle: http://jsfiddle.net/bUa3R/ – CullenJ

+0

Это странно. Он работает в моем jsFiddle, но не в моем веб-приложении. – CullenJ

ответ

4

Обнаружили проблему. Код генерации моей даты отключен, поскольку конструктор long-form длиной Date(year, month, date [, time...]) JavaScript использует локальное время или что-то странное. Во всяком случае, я заменил звонок на new Date(...).getTime(), чтобы быть Date.UTC(...) и все магически сработало.

Похоже, обработка данных JavaScript, как правило, является причиной большинства моих проблем с JS!