Django生成多系列Highchart图表

0 投票
1 回答
2128 浏览
提问于 2025-04-17 18:18

我一直在通过Django创建一些Highcharts,方式是这样的:

...get rows from database
            rows = cursor.fetchall()

            months = list()
            avg_class = list()

            for i in range(0, len(rows)):
                months.append(rows[i][2])
                avg_class.append(rows[i][5])

            months_j = json.dumps(months, cls=DecimalandDateEncoder)
            avg_class_j = json.dumps(avg_class, cls=DecimalandDateEncoder)
send to my template....

这段代码里包含了图表的javascript,格式大概是这样的。

            xAxis: {
                type: 'datetime',
                categories: {{ months|safe }},
                etc...........
            },
            series: [{
                name: 'Series Name',
                data: {{ avgclassdata }}
            }]

这样做效果很好,数据像这样。

Month       Avg Class Data
1/1/2012    17.600493
2/1/2012    18.114341
3/1/2012    16.246443
4/1/2012    16.09489

现在,我有这样的数据:

Location    Month   Avg Class Data
Location 1  1/1/2012    17.600493
Location 1  2/1/2012    18.114341
Location 1  3/1/2012    16.246443
Location 1  4/1/2012    16.09489
Location 2  1/1/2012    21.56584
Location 2  2/1/2012    19.54654
Location 2  3/1/2012    17.54654
Location 2  4/1/2012    20.54551

这些数据可能来自多个地点。我想用每个地点的组作为一个系列来创建Highchart。我有点不知道该怎么循环我的结果行,并把地点作为系列名称,然后把对应的平均班级数据作为系列数据。

我的最终目标是从数据库结果中创建这个:

            xAxis: {
                type: 'datetime',
                categories: {{ months|safe }},
                etc...........
            },
            series: [{
                name: Here would go the name of Location 1,
                data: {{ location 1 data }}
            }, {
                name: Here would go the name of Location 2,
                data: {{ location 2 data }}
            }]

我更希望能得到一些方向上的指导,而不是让别人直接给我写代码。任何帮助都非常感谢!

1 个回答

2

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程可能会涉及到一些复杂的操作,比如数据的转换、过滤或者排序。

想象一下,你在做一个项目,需要从一个数据库里提取用户的信息,然后把这些信息展示在网页上。为了做到这一点,你可能需要写一些代码来连接数据库,获取数据,然后把它们格式化成网页可以显示的样子。

在这个过程中,你可能会遇到一些问题,比如数据格式不对,或者获取的数据不完整。这时候,你就需要调试你的代码,找出问题所在,并进行修复。

总之,处理数据的过程就像是在做一道菜,你需要准备好所有的材料,按照步骤进行,最后才能做出美味的成品。

 xAxis: {
     type: 'datetime',
     categories: {{ months|safe }},
     etc...........
 },series: [
        {% for location in locations %}
        {
            name: Here would go the name of {{location.name}},
            data: [
               {% for data in location_data %}
               {{data}},
               {% endfor %}
            ]
        },
        {% endfor %}
 ]

撰写回答