Django应用中的Javascript饼图-显示动态数据的问题
Javascript Pie Chart in Django App - Problems displaying dynamic data
我弄不明白:我有一个Django应用程序,我在索引页的模板上有一点JavaScript代码来制作饼状图。我真的不懂JavaScript,但从某处得到了一些代码,它可以工作。我的问题是,当我直接输入数据时,代码工作,但是当我试图动态获取数据时,饼状图消失了。
让我感到困惑的是,当我查看页面源时,数据是在那里。它已经成功地从数据库中提取数据,并将其转换为图表数据的正确格式。所以它看起来应该是工作的。下面是页面源代码:第一行数据是动态生成的,之后的(被注释掉的)是静态类型的。如果我注释掉动态的,取消注释静态的,饼状图就在那里。反之,它就消失了。在我看来,这两组数据完全一样——哪一组是一致的?
$(function () {
// data
var data = [
{ label: "Blogs", data: 87102},
{ label: "Conversation (Phone)", data: 2652},
{ label: "Folktales", data: 47981},
{ label: "Internet Forums", data: 75900},
{ label: "Jokes", data: 5833},
{ label: "Literature", data: None},
{ label: "Opinion", data: 19231},
{ label: "Plays", data: 9512},
{ label: "Poem", data: 404},
{ label: "Political Speeches", data: 733},
{ label: "Proverbs", data: 1081},
{ label: "Radio", data: 13774},
{ label: "Recipes", data: 215},
{ label: "Songs", data: 3161},
{ label: "Sports", data: 8732},
{ label: "Television (Drama)", data: 142029},
{ label: "Web", data: 336919},
// { label: "Web", data: 337972},
// { label: "Television", data: 142029},
// { label: "Blogs", data: 86049},
// { label: "Internet Forums", data: 74058},
// { label: "Folktales", data: 30698},
// { label: "Opinion", data: 19231},
// { label: "Plays", data: 9512},
// { label: "Sports", data: 8732},
// { label: "Radio (News)", data: 7438},
// { label: "Radio (Interviews)", data: 6286},
// { label: "Jokes", data: 5833},
// { label: "Songs", data: 3161},
// { label: "Conversation (Phone)", data: 2652},
// { label: "Proverbs", data: 1081},
// { label: "Political Speeches", data: 733},
// { label: "Poem", data: 404},
// { label: "Recipes", data: 215},
// { label: "Radio (Listener Responses)", data: 53},
];
这是图表的完整代码,以防你需要它:
{% block javascript %}
<script language="javascript" type="text/javascript" src="/media/js/flot/jquery.flot.js"></script>
<script language="javascript" type="text/javascript" src="/media/js/flot/jquery.flot.pie.js"></script>
<script type="text/javascript">
$(function () {
// data
var data = [
{% for cat,count in cat_wordcount %}
{ label: "{{ cat }}", data: {{ count }}},
{% endfor %}
// { label: "Web", data: 337972},
// { label: "Television", data: 142029},
// { label: "Blogs", data: 86049},
// { label: "Internet Forums", data: 74058},
// { label: "Folktales", data: 30698},
// { label: "Opinion", data: 19231},
// { label: "Plays", data: 9512},
// { label: "Sports", data: 8732},
// { label: "Radio (News)", data: 7438},
// { label: "Radio (Interviews)", data: 6286},
// { label: "Jokes", data: 5833},
// { label: "Songs", data: 3161},
// { label: "Conversation (Phone)", data: 2652},
// { label: "Proverbs", data: 1081},
// { label: "Political Speeches", data: 733},
// { label: "Poem", data: 404},
// { label: "Recipes", data: 215},
// { label: "Radio (Listener Responses)", data: 53},
];
var series = Math.floor(Math.random()*10)+1;
// GRAPH 7
$.plot($("#graph7"), data,
{
series: {
pie: {
show: true,
combine: {
color: '#999',
threshold: 0.03
}
}
},
legend: {
show: false
}
});
});
我认为问题出在
{ label: "Literature", data: None},
None不是一个有效的js表达式
编辑:为了避免"无问题",你应该在你的模板中有这样的内容:
{ label: "{{ cat }}", data: {% if count %} {{ count }}} {% else %} 0 {% endif %},
相关文章:
- 动态显示JSON文件内容
- 如何将(a*b)两个输入文本值相乘,并在javascript中随文本变化动态显示
- Highcharts:根据表单输入动态显示数据
- ImageMapster可以动态显示和隐藏图像选择崩溃
- AngularJS动态显示多条记录
- 动态显示/添加具有不同字段的相同表单到页面
- 在轨道上的 Ruby 文本字段中动态显示数据
- 使用 Node.js 和 socket.io 和 fs 动态显示图像
- 在两列中动态显示产品
- 根据条件使用ng repeat动态显示输入复选框
- 动态显示元素上的JavaScript触摸端;不要开火
- Bootstrap动态显示PopOver
- 从本地存储中删除动态显示在
- 中的项目
- 单击时动态显示数据库信息
- 动态显示实时高图表数据,无需警报
- 隐藏信息窗口标记并动态显示
- 尝试使用 Angular 动态显示模型
- 在 javascript 中动态显示一个带有换行符的警告框
- PHP、MySQL 和 Ajax:动态显示默认数据、选择现有数据或添加新数据
- 动态显示和隐藏元素