1

テーブルに20ミリオンの行があります。http: //www.jqplot.com/tests/date-axes.php (日付と時刻)を使用してタイムスタンプのグラフをプロットしようとしています。jqueryはプロットするデータの多くをどのように処理しますかそれ。2つの質問:

1.以下のコードから配列を作成するにはどうすればよいですか?

line1=[['2008-09-30',4], ['2008-10-30',6], ['2008-11-30',5], ['2008-12-30',9], ['2009-01-30',8]];`

2.この場合、コードを即興するにはどうすればよいですか?

def get_data(request):
 cdr = Cdr.objects.values_list('start_of_call',flat=True)
 context_instance=RequestContext(request, {})) 
 return render_to_response('cdr/get_data.html', context_instance=RequestContext(request, {'cdr':cdr}))

レンプレート:

<script class="code" type="text/javascript">
$(document).ready(function(){

{% for c in cdr %}
  {{ c|date:"d M Y"}}
{% endfor %}
 How to construct the below array line from for loop or using jquery methods
//var line1=[['2008-09-30',4], ['2008-10-30',6], ['2008-11-30',5], ['2008-12-30',9], ['2009-01-30',8]];

var plot1 = $.jqplot('chart1', [line1], {
title:'Default Date Axis',
axes:{xaxis:{renderer:$.jqplot.DateAxisRenderer}},
series:[{lineWidth:4, markerOptions:{style:'square'}}]
});
});
 </script>

EDIT

  line1=[['2008-09-30',4], ['2008-10-30',6], ['2008-11-30',5], ['2008-12-30',9], ['2009-01-30',8]];`

上記の行の4、6、5、9、8は時間です

EDIT2

CDR値:

    [datetime.datetime(2012, 9, 13, 15, 54, 52, tzinfo=<UTC>), datetime.datetime(2012, 9, 22, 18, 24, 18, tzinfo=<UTC>), datetime.datetime(2012, 9, 6, 7, 42, 50, tzinfo=<UTC>), datetime.datetime(2012, 9, 7, 21, 27, 13, tzinfo=<UTC>), datetime.datetime(2012, 9, 3, 11, 57, 9, tzinfo=<UTC>), datetime.datetime(2012, 9, 1, 17, 23, 41, tzinfo=<UTC>), datetime.datetime(2012, 9, 15, 6, 14, 33, tzinfo=<UTC>), datetime.datetime(2012, 9, 4, 5, 36, 30, tzinfo=<UTC>), datetime.datetime(2012, 9, 17, 10, 45, 6, tzinfo=<UTC>), datetime.datetime(2012, 10, 1, 3, 1, 17, tzinfo=<UTC>), datetime.datetime(2012, 9, 27, 8, 36, 41, tzinfo=<UTC>), datetime.datetime(2012, 9, 30, 3, 12, 18, tzinfo=<UTC>), datetime.datetime(2012, 9, 18, 4, 8, 49, tzinfo=<UTC>), datetime.datetime(2012, 9, 2, 7, 21, tzinfo=<UTC>), datetime.datetime(2012, 9, 19, 16, 57, 34, tzinfo=<UTC>), datetime.datetime(2012, 9, 17, 17, 14, 49, tzinfo=<UTC>), datetime.datetime(2012, 9, 1, 22, 40, 33, tzinfo=<UTC>), datetime.datetime(2012, 9, 15, 1, 7, 39, tzinfo=<UTC>), datetime.datetime(2012, 9, 22, 17, 11, 45, tzinfo=<UTC>), datetime.datetime(2012, 9, 10, 3, 16, 21, tzinfo=<UTC>), '...(remaining elements truncated)...']
4

1 に答える 1

3

このようなもの:

from django.utils import simplejson

def get_data(request):
    cdr = [(x.strftime('%Y-%M-%D'), x.hour) for x in \
            Cdr.objects.values_list('start_of_call',flat=True)]
    return render_to_response('cdr/get_data.html',
                              {'cdr': simplejson.dumps(cdr)},
                              context_instance=RequestContext(request))

のフォーマット文字列がstrftime少しずれている可能性があります - ここで確認してください: http://docs.python.org/2.7/library/datetime.html#strftime-strptime-behavior

ところで、あなたのビューは RequestContext で奇妙なことをしました - 上記はより一般的なスタイルです。

テンプレート:

line1 = jQuery.parseJSON({{ cdr }})

サンプル サイズの問題については、明確な答えはありません。ネットワーク接続、ブラウザ、マシンによって異なります。その siad 20M は非常に大きいです。データセットをサンプリングして、より扱いやすいサイズにすることを検討してください。実験が最善の方法です。

于 2012-11-27T12:12:27.207 に答える