2012-04-03 8 views
7

Ich habe Javascript-Code als die, die Werte zeigen:Wie die Regionen des jqplot Chart statt prozentualer

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]); 

nun unter Verwendung dataLabels: ‚value‘ ich in der Lage bin Werte zu zeigen, aber angezeigte Wert ist 51 statt 50.667.Value ist gerundet. Aber ich muss den genauen Wert zeigen. Wie geht das?

Meine zweite Frage ist, dass, wenn ich den Mauszeiger auf eine Region des Diagramms habe, ich etwas zeigen möchte.Ist das mit jqplotDataMouseOver getan werden Aber wie man es benutzt ?? Vielen Dank im Voraus.Plz reagieren sofort als dringend.

+0

Bitte geben Sie mir eine Idee. – ryan

Antwort

10

Ihre erste Frage kann mit der dataLabelFormatString Eigenschaft gelöst werden:

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

Die '%.4f' 4 Dezimalstellen zeigen würde.

Ihre zweite Frage ist schwieriger. Apparently events on bar charts sind mit jqplot nicht ganz ausgebügelt. Aber der letzte Vorschlag in diesem Link funktioniert für mich:

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

hier ein jsfiddle, erinnern sich an die JS-Dateien zwischenzuspeichern, da jqplot hotlinking nicht gestattet.