【问题标题】:Django jquery flot chart multiple seriesDjango jquery float chart 多个系列
【发布时间】:2023-03-03 20:03:03
【问题描述】:

我在我的 Django 应用程序中使用 Flot 作为图表。我想每天绘制一个包含许多数据系列的图表(折线图)。每天,序列号都可能发生变化,我不知道如何用 flot 处理这个问题。我的代码或多或少是这样的:

test.py

 data_day_1 = [[1,56],[2,65],[3,45]]
 data_day_2 = [[1,45],[2,23],[3,89]]
 return render_to_response('test.html', {'data_day_1': data_day_1,
                                         'data_day_2': data_day_2,
                                         },
                          context_instance=RequestContext(request))       

test.html

 <div class="portlet-body">
     <div id="site_statistics" class="chart"></div>
 </div>

 <script type="text/javascript">
 var data1 = [];
 {% for x, y in data_day_1 %}
 data1.push([{{x}},{{y}}])
 {% endfor %} 

 var data2 = [];
 {% for x, y in data_day_2 %}
 data2.push([{{x}},{{y}}])
 {% endfor %} 

 $(function () {    
    var Options = { lines: {show: true},                
                          }
        $.plot($("#site_statistics"), 
        [{data: data1,
      color: "#454d7d",
      points: {show: true},
      label: "data_day_1", 
      },
     {data: data2,
      color: "#454d7d",
      points: {show: true},
      label: "data_day_2", 
      }
     ],Options);
});     

改天我可能有另一组(例如data_day_3)并且不知道该怎么做。如何动态管理数据传输和新线路的设计?感谢您的帮助。

【问题讨论】:

    标签: django charts flot


    【解决方案1】:

    您可以在 json 中编码您的数据:

    from django.utils import simplejson as json
    
    data_all_days = [
       {'label': 'Day 1',
        'data': [[1, 4], [1,8], [9, 8]],
        'color': '#000',
       },
       {'label': 'Day 2',
        'data':...,
        'color': ...,
        },
       ...]
    render_to_response( ... {'charts': json.dumps(data_all_days)})
    

    并且在模板中只使用 json 作为 javascript 代码:

    var chart_data = {{ charts|safe }};
    
    $.plot($('#site_statistics'), chart_data);
    

    您的 js 代码中将具有 data_all_days 的结构,并将使用循环对其进行解析。 继续阅读jquery.each

    运行此代码时,在 Chrome 或 FireFox 中打开它并打开开发人员工具(Ctrl+I 或 F12)并查看调试控制台,它会显示 JavaScript 是否有错误。

    |safe 是一个模板过滤器,用于防止代码被 html 引用。

    【讨论】:

    • 我尝试使用此代码但不起作用,看不到图表...我在代码中仅添加了“选项”变量。可能是什么问题?谢谢
    • 编辑:现在它只显示一个系列的蝙蝠...我快疯了。我改变了这个:...,[{ data: val.data, label: val.label }], Options.. 如果我不放 [] 图表不会显示。
    • 哦,是我的错,你那里不需要循环,对,其实你可以在服务器端做结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    相关资源
    最近更新 更多