2012-07-18 28 views
7

Bir pasta grafiğini denemek ve görüntülemek için jqPlot.PieRenderer ile jqPlot kullanıyorum. Etiket üzerinde value (percent) göstermek istiyorum. Dökümantasyon (source) etiket türlerini geçebileceğinizi, ancak(yüzde) ve %d (değer için) dataLabelFormatString seçeneklerinde hiçbir şey göstermeyerek sonlandırabileceğinizi söylüyor.jqPlot pasta grafiğinde yüzdesi ve değeri gösterir

Burada herhangi bir fikir var mı?

{ 
    seriesDefaults: { 
     renderer: jQuery.jqplot.PieRenderer, 
     rendererOptions: { 
      showDataLabels: true, 
      dataLabels: ['value', 'percent'], 
      dataLabelFormatString: "%d %d%%", 
      sliceMargin: 4, 
      fill: false 
     } 
    }, 
    legend: { show:true, location: 'e' } 
} 

cevap

18

Bu belgeleri biraz farklı okudum. 'Değer', 'yüzde', 'etiket' VEYA bir dizi etiket seçeneğidir. Bir dizi seçenek değil. İstediğinizi yapmak için, veri etiketlerinizi gerçek bir etiket dizisi olarak oluşturmanız gerekir. Örneğin

:

data = [ 
    ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], 
    ['Out of home', 16],['Commuting', 7], ['Orientation', 9] 
]; 

var total = 0; 
$(data).map(function(){total += this[1];}) 

myLabels = $.makeArray($(data).map(function(){return this[1] + " " + Math.round(this[1]/total * 100) + "%";})); 

örnek keman here bakınız.

+0

çok teşekkür ederiz! Keşke size bunun için birden fazla temsilci verebilirdim. – Snuffleupagus

+0

Bir şey değil. – Mark

+0

Mükemmel - Dokümanlar ile biraz kafam karıştı ve bir dizi seçeneği uygulamaya çalıştım - çözdünüz - Süper teşekkürler. – YonoRan

0

kullanım

formatter: function(label, series){ 
         return '<div style="font-size:14pt;text-align:center;padding:2px;color:white;">'+Math.round(series.percent)+"%<br/>" + series.data[0][1] +'</div>'; 
        },