2012-07-18 18 views
7

jqplot.PieRendererでjqPlotを使用して円グラフを表示しようとしています。ラベルにはvalue (percent)と表示したいと思います。ドキュメントにはのラベルタイプの配列dataLabelを渡すことができますが、dataLabelFormatStringオプションの(パーセント用)と%d(値用)は何も表示されません。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

私はこれらのドキュメントを少しずつ読んでいます。 'value'、 'percent'、 'label'またはラベルの配列のオプションです。オプションの配列ではありません。必要な作業を行うには、実際のラベル配列としてデータラベルを作成する必要があります。例えば

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

+0

ようこそ。 – Mark

+0

優秀 - 私はまた、ドキュメントと少し混乱し、オプションの配列を実装しようとしました - あなたはそれを解決しました - スーパー感謝。 – YonoRan

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>'; 
        }, 
関連する問題