1

我想用本地数据加载图表数据。

 <sjc:chart
       id="chartPlaceHolder"
       cssStyle="width: 600px; height: 400px;"
       pie="true"
       pieLabel="true"
       dataType="local"        
   />

然后我使用(如Refresh/Reload Flot In Javascript中所述)

//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();

aB is undefined我在 jquery API 中遇到了一些 jquery 异常

任何意见 ?!

4

1 回答 1

1

您缺少$.plot().

您应该阅读基本用法

创建一个占位符 div 以将图形放入:

<div id="placeholder"></div>

你需要设置这个div的宽度和高度,否则绘图库不知道如何缩放图形。你可以这样内联:

<div id="placeholder" style="width:600px;height:300px"></div>

您也可以使用外部样式表来完成。确保占位符不在具有 display:none CSS 属性的内容中 - 在这种情况下,Flot 无法测量标签尺寸,从而导致外观乱码,并且可能无法测量致命的占位符尺寸(它会抛出例外)。

然后,当 DOM 中的 div 准备就绪时,通常是在文档准备就绪时,运行 plot 函数:

$.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>
于 2016-02-07T12:38:41.373 回答