You are missing two additional parameters to $.plot().
You should read the basic usage.
Create a placeholder div to put the graph in:
<div id="placeholder"></div>
You need to set the width and height of this div, otherwise the plot
  library doesn't know how to scale the graph. You can do it inline like
  this:
<div id="placeholder" style="width:600px;height:300px"></div>
You can also do it with an external stylesheet. Make sure that the
  placeholder isn't within something with a display:none CSS property -
  in that case, Flot has trouble measuring label dimensions which
  results in garbled looks and might have trouble measuring the
  placeholder dimensions which is fatal (it'll throw an exception).
Then when the div is ready in the DOM, which is usually on document
  ready, run the plot function:
$.plot($("#placeholder"), data, options);
Here, data is an array of data series and options is an object with
  settings if you want to customize the plot. Take a look at the
  examples for some ideas of what to put in or look at the API
  reference. Here's a quick example that'll draw a line from (0, 0) to
  (1, 1):
$.plot($("#placeholder"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });
EDIT:
You can try below code. It's reloading the chart with data after the chart was created without data.
<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>