2012-07-18 2 views
7

저는 원형 차트를 표시하려고 jqplot.PieRenderer에서 jqPlot을 사용하고 있습니다. 레이블에 value (percent)을 표시하고 싶습니다. 설명서에 레이블 유형 배열 (source) 배열을 전달할 수 있지만 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>'; 
        }, 
관련 문제