Задать вопрос
zorro76
@zorro76

Как форматнуть дату в графике google charts?

Есть график реализованный на google charts а именно Dual-Y Charts , возникла проблема с отображением дат по оси Y
Django передает данные в нужном формате: (в консоли видно)

data.addRows([
[new Date (2018, 01, 07), 5138, 8960],
[new Date (2018, 01, 12), 4200, 7500],
[new Date (2018, 01, 16), 3850, 5000],
]);

я с помощью формата даты меняю отображение ее, но на самом графике дата на месяц вперед получается, потому как месяц январь в gogole charts (и в js) начинается с 0.
Как обойти этот трабл?
Вот мой код js:
google.load('visualization', '1', {
    'packages': ['corechart']
});
google.setOnLoadCallback(drawChart);

function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('date', 'Time of Day');
    data.addColumn('number', 'KWR');
    data.addColumn('number', 'BSR');

    data.addRows([
        {% for stat in launched_product.get_all_statistic %}
            [new Date ({{ stat.timestamp|date:"Y,m,d" }}), {{ stat.kw_rank }}, {{ stat.bsr }}],
        {% endfor %}
    ]);

    var chart = new google.visualization.LineChart(document.getElementById('chart_div-{{ launched_product.pk }}'));
    chart.draw(data, {
        series: {
            0: {targetAxisIndex: 0,},
            1: {targetAxisIndex: 1,}
        },

        colors: ['#ff9000','#000000'],
        hAxis: {
            format: 'M/d/yy',
            gridlines: {
                count: 10
            }
        },
        vAxis: {
            direction: -1
        },
        vAxes: {
            0: {
                minValue: 1,
                maxValue: 0,
                title: 'KWR'
            },
            1: {
                minValue: 1,
                maxValue: 0,
                title: 'BSR'
            }
        }

    });
}
//адаптация графика
$(window).resize(function(){
    drawChart();
});

и в графике отображается : 02/0718, 02/12/18, 02/16/18, а нужно 01/07/18, 01/12/18 и так далее. В чем косяк и как его исправить? Спасибо.
  • Вопрос задан
  • 586 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
zorro76
@zorro76 Автор вопроса
Решил проблему следующим образом (возможно и хардкорно, но работает):

data.addRows([
        {% for stat in launched_product.get_all_statistic %}
            [new Date ({{ stat.timestamp|date:"Y, m-<b>1</b>, d" }}), {{ stat.kw_rank }}, {{ stat.bsr }}],
        {% endfor %}
    ]);
в получаемых django данных отнимаю от месяца 1, и результат
01/07/18, 01/12/18, 01/16/18
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы