Djangoでamchartsを使う
とりあえず、amchartsを使ってみました。
graph posted by (C)kuma8
amchartsは、データ形式にCSVとXMLを選択することができます。
今回は、CSV形式でグラフを書いてみました。
DjangoでCSV出力を参考にCSV出力をさせて、amchartsのデータファイルを設定する箇所で、CSV出力をするURLを指定することで簡単に使えました。
グラフの設定ファイルをいじるといろいろ遊べそうです。
from django.http import HttpResponse from django.shortcuts import render_to_response from django.template import loader, Context from amcharts.data.models import Record # Create your views here. def csv_output(request): response = HttpResponse(mimetype='text/csv') response['Content-Disposition'] = 'attachment; filename=somefilename.csv' csv_data = Record.objects.all() t = loader.get_template('csvout.html') c = Context({ 'data': csv_data, }) response.write(t.render(c)) return response
CSVを出力するテンプレート
{% for row in data %}{{ row.date }};{{ row.usd }};{{ row.gbp }};{{ row.eur }};{{ row.cad }} {% endfor %}
amchartsを表示するHTML(設定部分のみ)
data_file部分で、CSV出力するURLを指定する
<script type="text/javascript"> // <![CDATA[ var so = new SWFObject("/site_media/swf/amline.swf", "amline1", "400", "400", "8", "#FFFFFF"); so.addVariable("path", "/"); so.addVariable("settings_file", escape("/site_media/swf/amline_settings.xml")); so.addVariable("data_file", escape("/amcharts/feeds/csv/")); // so.addVariable("chart_data", ""); so.addVariable("preloader_color", "#000000"); so.write("flashcontent1"); // ]]> </script>