Djangoでamchartsを使う

とりあえず、amchartsを使ってみました。
graph
graph posted by (C)kuma8


amchartsは、データ形式CSVXMLを選択することができます。
今回は、CSV形式でグラフを書いてみました。

DjangoでCSV出力を参考にCSV出力をさせて、amchartsのデータファイルを設定する箇所で、CSV出力をするURLを指定することで簡単に使えました。

グラフの設定ファイルをいじるといろいろ遊べそうです。

DjangoCSV出力

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>