我想用本地数据加载图表数据。
txt = ''
for item in line0:
txt += str(item)
print(txt)
然后我使用(如Refresh/Reload Flot In Javascript中所述)
<sjc:chart
id="chartPlaceHolder"
cssStyle="width: 600px; height: 400px;"
pie="true"
pieLabel="true"
dataType="local"
/>
我在jquery API中得到了一些jquery异常//This data is created dynamically from a grid when grid completed
var chartData= [
{ label: "Chrome", data: 36.3, color: "#89A54E"},
{ label: "Other", data: 0.8, color: "#3D96AE"}
];
var plot = $.plot($('#chartPlaceHolder'));
plot.setData(chartData);
plot.setupGrid();
plot.draw();
有任何意见吗?!
答案 0 :(得分:1)
您错过了$.plot()
的两个额外参数。
您应该阅读basic usage。
创建占位符div以将图形放入:
<div id="placeholder"></div>
您需要设置此div的宽度和高度,否则设置图 图书馆不知道如何缩放图表。你可以像内联那样做 这样:
<div id="placeholder" style="width:600px;height:300px"></div>
您也可以使用外部样式表执行此操作。确保 占位符不在显示内容中:none CSS属性 - 在这种情况下,Flot无法测量标签尺寸 导致外观乱码,可能无法测量 占位符维度是致命的(它会抛出异常)。
然后在DOM中准备好div,这通常是在文档上 准备好了,运行绘图功能:
$.plot($("#placeholder"), data, options);
这里,data是一个数据系列数组,options是一个对象 设置是否要自定义绘图。看看吧 有关放入或查看API的一些想法的示例 参考。这是一个快速示例,它将从(0,0)绘制一条线到 (1,1):
$.plot($("#placeholder"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });
编辑:
您可以尝试以下代码。在没有数据的情况下创建图表后,它会使用数据重新加载图表。
<sjc:chart
id="placeholder"
cssStyle="width: 600px; height: 400px;"
pie="true"
pieLabel="true">
</sjc:chart>
<script>
$(function(){
var chartData= [
{ label: "Chrome", data: 36.3, color: "#89A54E"},
{ label: "Other", data: 0.8, color: "#3D96AE"}
];
var series = { pie: { show: true }};
var o = {};
o.data = chartData;
o.series= series;
$.struts2_jquery_chart.chart($("#placeholder"), o);
});
</script>