如何为Highcharts.js系列图表正确构造/传递数据?

时间:2018-08-12 23:08:55

标签: json django highcharts

我正在尝试学习如何使用Django将自己的值/标签传递到Highcharts图,并且在正确构造数据/传递参数方面遇到了一些问题。

我看了这个例子(https://www.highcharts.com/demo/line-basic),数据看起来像是一个数组数组,所以我想这就是我的系列的样子。

这是我的看法:

// in views.py:
def make_graph(request):
    dates = // A list of datetime.date objects.
    values = [1, 2, 3, 4, 5, 2, 3, 5, 3, 3]

    data = [[d, v] for d, v in zip(dates, values)]

    context = {"data": data}

    return render("graph.html", context)

现在,这是我的Highcharts脚本:

<script>
var data = {{ data|safe }};

Highcharts.chart('container', {
    chart: {
        type: 'spline'
    },
    title: {
        text: 'some title'
    },
    subtitle: {
        text: 'some subtitle'
    },
    xAxis: {
        type: 'datetime',
        dateTimeLabelFormats: {
            month: '%e. %b',
            year: '%b'
        },
        title: {
            text: 'Date'
        }
    },
    yAxis: {
        title: {
            text: 'y value'
        }
    },
    tooltip: {
        headerFormat: '<b>{series.name}</b><br>',
        pointFormat: '{point.x:%e. %b}: {point.y:.2f} m'
    },

    plotOptions: {
        spline: {
            marker: {
                enabled: true
            }
        }
    },

    colors: ['#6CF', '#39F', '#06C', '#036', '#000'],

    series: [{
        name: "Trend",
        data: data
    }]
});
</script>

运行此HTML模板时,不会显示任何图表。它只是一个空白页,所以我猜测构造data并将其传递到模板中的方式是错误的。 (我一直在使用CDN,并且示例图表工作正常,因此我认为它不是js问题)。

所以,我的问题是,在data中格式化views.py的正确方法是什么,如何正确地将序列数据设置为data?谢谢。

1 个答案:

答案 0 :(得分:0)

使用以下命令解决了此问题:How to convert datetime string to UTC to plot points on Highcharts

基本上转换为日期时间的对象为整数值。