2012-07-18 139 views
7

我使用jqPlot和jqplot.PieRenderer來嘗試並顯示餅圖。在標籤上,我想展示value (percent)。該文件說您可以通過dataLabel標籤類型(source),但%d%%(對於百分比)和%d(對於值)在dataLabelFormatString選項最終顯示什麼都沒有。jqPlot在餅圖上顯示百分比和值

這裏的任何想法?

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

回答

18

我讀了那些文檔有點不同。這是選項'值','百分比','標籤'或標籤數組。不是一系列選項。要做你想做的事情,你需要創建你的數據標籤作爲一個真正的標籤數組。

例如:

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) + "%";})); 

見例如撥弄here

+0

非常感謝您!我希望我能給你一個以上的代表。 – Snuffleupagus 2012-07-19 15:43:02

+0

不客氣。 – Mark 2012-07-19 16:25:06

+0

優秀 - 我也對文檔有點困惑,並試圖實現一系列選項 - 你解決了它 - 超級謝謝。 – YonoRan 2014-04-14 11:24:49

0

使用

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>'; 
        },