2012-11-02 2 views
2

Я использую следующую функцию для создания диаграммы, в которой он работал.Создайте круговую диаграмму с использованием Jq-графика с JSON

$(document).ready(function(){ 
    var data = [ 
    ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], 
    ['Out of home', 16],['Commuting', 7], ['Orientation', 9] 
    ]; 
    var plot1 = jQuery.jqplot ('chart1', [data], 
    { 
     seriesDefaults: { 
     renderer: jQuery.jqplot.PieRenderer, 
     rendererOptions: { 

      showDataLabels: true 
     } 
     }, 
     legend: { show:true, location: 'e' } 
    } 
); 
}); 

И моя проблема, если я получаю JSON в другой массив, и я использую этот массив в круговой диаграммы это не значит work.Which ...

$(document).ready(function(){ 
var data1= new Array(); 
    data1=[['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], 
    ['Out of home', 16],['Commuting', 7], ['Orientation', 9]]; 

    var plot1 = jQuery.jqplot ('chart1', [data1], 
    { 
     seriesDefaults: { 
     renderer: jQuery.jqplot.PieRenderer, 
     rendererOptions: { 

      showDataLabels: true 
     } 
     }, 
     legend: { show:true, location: 'e' } 
    } 
); 
}); 
+0

Можете ли вы создать скрипку для этого? – kayen

+0

Я не вижу никакой проблемы в коде, который вы предоставили. Вот скрипка, которую я создал: http://jsfiddle.net/XBg5Z/1/. Можете ли вы показать нам, что JSON вы передаете функции jqplot? – kayen

+0

@kayen в вашей скрипке javascript не показывает график –

ответ

2

Попробуйте это, работая отлично.

$.getJSON('/mcontraller/getvalues', function(data) { 
     var items1 = new Array(); 
     var j=0; 
     for (var i in data) { 
      var items = new Array(); 
      items.push(i,Number(data[i])); 
      items1[j++] = items; 
     } 

     var plot1 = jQuery.jqplot('chart1', eval([items1]), { 

        seriesDefaults:{ 
         // Make this a pie chart. 
         renderer:jQuery.jqplot.PieRenderer, 
         rendererOptions:{ 
          // Put data labels on the pie slices. 
          // By default, labels show the percentage of the slice. 
          dataLabels:'value', 
          showDataLabels:true 
         } 
        }, 
        legend:{ show:true, location:'e' } 
       } 
     ); 

    }); 
0

На графике Данные, которые используемые для построения диаграмм, передаются как строки, поэтому я использовал eval для анализа этого объекта как объекта и который работает нормально. eval(data1)

0

Я просто попробовал свой код сам. и он работал отлично. Я не думаю, что есть какая-то ошибка. вероятно, вы должны проверить ссылку на jqplot.pieRenderer.min.js

Смежные вопросы