2013-06-07 2 views
0

Я использую плагин jqPlot для рисования некоторых графиков. У меня возникла проблема, когда я решил изменить данные сюжета, но я не могу найти функцию, которая может это сделать. Кто-нибудь знает, какая функция может мне помочь?jqPlot данные изменения пончика

Вот мой код:

var musica = [ 
    ['IVA', 16], 
    ['Tienda', 40.2], 
    ['Discográfica', 22.4], 
    ['Distribuidor', 4], 
    ['La fabricación', 4], 
    ['Derechos del autor', 4], 
    ['Royalty para el artista', 9.4] 
]; 
var plot1 = $.jqplot ('grafico_musica', [musica], 
    { 
     title: "Música", 
     seriesDefaults: { 
      renderer: $.jqplot.PieRenderer, 
      rendererOptions: { 
       dataLabelFormatString:'%.1f%', 
       showDataLabels: true 
      } 
     }, 
     legend: { 
      show:true, 
      location: 'e' 
     }, 
     highlighter: { 
      show: true, 
      formatString:'%s', 
      tooltipLocation:'sw', 
      useAxesFormatters: false 
     } 
    } 
); 

Я попытался изменить свойство данных, thhis способом, но это `ы не работает

plot1._plotData = peliculas;// peliculas is an array previously defined 

Проблема решена с помощью этой функции:

plot1.replot({data: [peliculas]}); 
+0

Я не совсем уверен, что вы имеете в виду. Я пытаюсь изменить данные после построения графика. Например, нажмите эту кнопку, чтобы просмотреть разные данные - что-то вроде этого? –

+0

@AbdullahAAlmsaeed да, и я сделал это следующим образом: plot1.replot ({data: [peliculas]}); Спасибо за ответ. –

ответ

0

Это может помочь:

plot1.destroy(); 
plot1 = $.jqplot ('grafico_musica', [peliculas], 
    { 
     title: "Música", 
     seriesDefaults: { 
      renderer: $.jqplot.PieRenderer, 
      rendererOptions: { 
       dataLabelFormatString:'%.1f%', 
       showDataLabels: true 
      } 
     }, 
     legend: { 
      show:true, 
      location: 'e' 
     }, 
     highlighter: { 
      show: true, 
      formatString:'%s', 
      tooltipLocation:'sw', 
      useAxesFormatters: false 
     } 
    } 
); 

Добавить предыдущий код в функцию и вызвать при необходимости.

Надежда, что помогает

+0

Это решение: plot1.replot ({data: [peliculas]}); Но спасибо за ответ. –

0

Решение уничтожить и воссоздать сюжет:

function createChart(data1) { 
    if (plot1) { plot1.destroy(); } 
      plot1 = jQuery.jqplot ('chart', [data1], 
     { 
      title: "Música", 
      seriesDefaults: { 
       renderer: $.jqplot.PieRenderer, 
       rendererOptions: { 
        dataLabelFormatString:'%.1f%', 
        showDataLabels: true 
       } 
      }, 
      legend: { 
       show:true, 
       location: 'e' 
      }, 
      highlighter: { 
       show: true, 
       formatString:'%s', 
       tooltipLocation:'sw', 
       useAxesFormatters: false 
      } 
     }); 
} 

Вот рабочий пример http://jsfiddle.net/U2xef/

+0

Это решение: plot1.replot ({data: [peliculas]}); Но спасибо за ответ –

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