zorro76
@zorro76

Как реальные данные подставить в google chart?

имеется скрипт google chart с вручную подставленными данными, хочу заменить их на динамически, которые выводяться django

но не получается никак
скрипт графика:

google.charts.load('current', {'packages':['corechart']});
    google.charts.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([
            [new Date(2017, 10, 9), 1238, 750],
            [new Date(2017, 10, 23), 1000, 630],
            [new Date(2017, 11, 1), 980, 400],
            [new Date(2017, 11, 28), 640, 250]
        ]);


        var options = {
            colors: ['#000000','#ff9000'],
            hAxis: {
                format: 'M/d/yy',
                gridlines: {count: 10}
            },
            vAxis: {
                direction: -1
            }
        };

        var chart = new google.visualization.LineChart(document.getElementById('chart_div-{{ launched_product.pk }}'));

        chart.draw(data, options);
    }

    $(window).resize(function(){
        drawChart();
    });


скрипт цикла вывода данных джангой:
$(function() {
        var chartData = [];

        chartData.push = [
            {% for stat in launched_product.get_all_statistic %}
        [{ new Date('{{ stat.timestamp|date:"Y-m-d" }}', {{ stat.kw_rank }}, {{ stat.bsr }})}],
        {% endfor %}
    ];
        var lineChartId = "chart_div-{{ launched_product.pk }}";

        drawChart(chartData, lineChartId);
    }());


реальные данные в консоли вижу, но передать их в

data.addRows([.... ]);

не выходит, туплю на ровном месте. Помогите разобраться что не так, спасибо.
  • Вопрос задан
  • 810 просмотров
Решения вопроса 1
@javedimka
Хочу сока
Нужно передать аргументы в функцию
function drawChart(chartData, lineChartId) {

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

        data.addRows(chartData);


        var options = {
            colors: ['#000000','#ff9000'],
            hAxis: {
                format: 'M/d/yy',
                gridlines: {count: 10}
            },
            vAxis: {
                direction: -1
            }
        };

        var chart = new google.visualization.LineChart(document.getElementById(lineChartId));

        chart.draw(data, options);
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы