2012-04-03 155 views
7

我的JavaScript代碼的區域值:如何顯示在jqplot圖表,而不是百分比

var plot1 = jQuery.jqplot ('chartdiv', [data], 
{ 
    seriesDefaults: { 
     // Make this a pie chart. 
     renderer: jQuery.jqplot.PieRenderer, 
     rendererOptions: { 
      // Put data labels on the pie slices. 
      // By default, labels show the percentage of the slice. 
      showDataLabels: true, 
      dataLabels: 'value' 
     } 
    }, 
    legend: { show:true, location:'e'} 
}); 


var handler = function(ev, gridpos, datapos, neighbor, plot) { 
    if (neighbor) { 
     alert('x:' + neighbor.data[0] + ' y:' + neighbor.data[1]); 
    } 
}; 

$.jqplot.eventListenerHooks.push(['jqplotClick', handler]); 

現在通過使用dataLabels:「值」我能顯示值,但顯示值51而不是50.667。價值圓了。但我需要顯示確切的價值。如何?

我的第二個問題是,當我在圖表的任何區域上有鼠標指針時,我想顯示一些東西。這就是使用jqplotDataMouseOver完成的,但是如何使用它? 在此先感謝。Plz緊急響應。

+0

請給我一些想法。 – ryan 2012-04-04 14:07:01

回答

10

你的第一個問題可以用dataLabelFormatString屬性來解決:

seriesDefaults: { 
     // Make this a pie chart. 
     renderer: jQuery.jqplot.PieRenderer, 
     rendererOptions: { 
      // Put data labels on the pie slices. 
      // By default, labels show the percentage of the slice. 
      showDataLabels: true, 
      dataLabels: 'value', 
      dataLabelFormatString:'%.4f' 
     } 
    }, 

'%.4f'將顯示小數點後4位。

你的第二個問題比較困難。 Apparently events on bar charts與jqplot不太相似。但是,在該鏈接的最後建議,爲我的作品:

$('#chartdiv').bind('jqplotDataMouseOver', function (ev, seriesIndex, pointIndex, data) { alert('series: '+seriesIndex+', point: '+pointIndex+', data: '+data)}); 

這裏有一個jsfiddle,記得緩存JS文件,因爲jqplot不允許盜鏈。