データストアに保存されているデータを使用してGoogleグラフをレンダリングするのに苦労しています。現時点では、データモデルを照会しました。
results = MyDataModel.query().fetch()
この段階で私は何をすべきかわからない。たとえば、次のようなPythonでリストを作成するのが最適ですか。
result_list = []
for result in results:
result_list.append([result.employee, result.salary])
次に、Jinja2テンプレートを使用して、それを配列テーブルに渡します。
var data = google.visualization.arrayToDataTable([
['Employee Name', 'Salary'],
{% for result in result_list %}
{{result | safe}}
{% endfor %},
false);
または、行データをDataTableに動的に追加するのが最善ですか、それともデータストアに直接クエリを実行するのが最善ですか?
どちらの方法を試しても、何かをレンダリングするのに苦労しています。どんな助けでもいただければ幸いです。
Jinja2テンプレートにデータを挿入することで正しいアイデアが得られます。入力をgoogle.visualization.arrayToDataTable
正しくフォーマットしていないようです。開いている角かっこ([)の1つが閉じていないことに注意してください。
以下は、それがあなたを助ける場合に備えて、私がこれをどのように行ったかの例です。あなたはそれがここに住んでいるのを見ることができます。
result_list
配列を作成しても意味がありません。results
クエリに関係なく処理されることになるだろうと、それはあなたのハンドラやテンプレートで行われているかどうかは問題ではありません。
<script type="text/javascript">
var data = new google.visualization.DataTable();
data.addColumn("string", "Candidate");
data.addColumn("number", "Votes");
data.addColumn({type:"string", role:"tooltip"});
data.addColumn({type: "boolean", role:"certainty"});
data.addColumn("number", "Received");
data.addColumn({type:"string", role:"tooltip"});
data.addColumn("number", "Transferred");
data.addColumn({type:"string", role:"tooltip"});
data.addRows([["Vanilla", 110.000000, "Votes: 110", true, 0.000000, "Votes: 110", 0.000000, "Votes: 110"],["Chocolate", 117.000000, "Votes: 117", true, 0.000000, "Votes: 117", 0.000000, "Votes: 117"],["Strawberry", 80.000000, "Votes: 80", true, 0.000000, "Votes: 80", 0.000000, "Votes: 80"],["Chocolate Chip", 103.000000, "Votes: 103", true, 0.000000, "Votes: 103", 0.000000, "Votes: 103"],["Cookies and Cream", 118.000000, "Votes: 118", true, 0.000000, "Votes: 118", 0.000000, "Votes: 118"],["Exhausted", 0.000000, "Votes: 0", true, 0.000000, "Votes: 0", 0.000000, "Votes: 0"]]);
var formatter = new google.visualization.NumberFormat({fractionDigits:0});
formatter.format(data, 1);
formatter.format(data, 3);
formatter.format(data, 5);
var options = {
width:'100%',
height:200,
legend:{position:"none"},
chartArea:{left:100,top:0,width:'100%',height:175},
hAxis:{maxValue:276},
isStacked:true,
colors:["#fcd050", "#87cf32", "#ef3638"],
};
var chart = new google.visualization.BarChart(document.getElementById("282249-1"));
chart.draw(data, options);
</script>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加