如何使用Django模板绘制Google图表(组合图)?

时间:2019-05-15 10:19:46

标签: python django google-chartwrapper

我在Django的列表中创建字典:

myList = [{'time':'week1','val':'0'},{'time':'week2','val':'1'}]

我想使用Google Combo Chart在html页面上显示,但不显示:

var data = google.visualization.arrayToDataTable([['Week', 'val']]);
                {% for i in myList%}
                    data.addRows([['{{i.time}}','{{i.val}}']]);
                {% endfor %}

然后,我在后面添加一个空行,它最终可以显示图表。

var data = google.visualization.arrayToDataTable([['Week', 'val'],['',  0]]);
                {% for i in myList%}
                    data.addRows([['{{i.time}}','{{i.val}}']]);
                {% endfor %}

我的问题是:

1。为什么“ arrayToDataTable”在创建时需要2行?

2。如何在不插入空行的情况下使用django模板创建组合图?

非常感谢!

1 个答案:

答案 0 :(得分:1)

所需数据应通过ajax调用或应直接传递到模板。这是一个有关如何通过ajax进行操作的示例:

function drawVisualization() {
    // Some raw data
    var json = $.ajax({
                    url: 'get_json_rank.php',
                    dataType: 'json',
                    async: false
                }).responseText;

    var data = new google.visualization.DataTable(json);

    var options = {
        title : 'Restaurant Ranking Stats',
        vAxis: {title: "Business Growth"},
        hAxis: {title: "Restaurants"},
        seriesType: "bars",
        series: {1: {type: "line"}}
    };              
    var chart = new 
google.visualization.ComboChart(document.getElementById('rank_chart'));
chart.draw(data, options);
}