2014-11-12 5 views
20

2 Fragen über die MPAndroidChart library. Alle meine Werte sind ganze Zahlen, werden aber als Dezimalzahlen angezeigt. Wie kann ich sie als ganze Zahlen (ohne die Ziffern) angezeigt bekommen? Wie kann ich verhindern, dass die Ylabels auch als Dezimalzahlen angezeigt werden? Ich weiß, dass es einen SetFormatter für die yvalues ​​gibt, verstehe einfach nicht wie man ...Wie formatiert man Werte in MPAndroidChart?

+0

Haben Sie es gelöst? ich meine ... was hast du in die Methode getFormattedValue() der ValueFormatter-Schnittstelle? – gumuruh

Antwort

29

Verwenden Sie die ValueFormatter Schnittstelle von der Bibliothek zur Verfügung gestellt.

Mit dieser Schnittstelle können Sie alle Werte formatieren, die im Diagramm angezeigt werden (auch y-Etiketten). Erstellen Sie einfach Ihre eigene Klasse, die die Schnittstelle implementiert und alles zurückgibt, was Sie anzeigen möchten.

Verbrauch:

chart.setValueFormatter(new YourValueFormatter()); 
YLabels yl = chart.getYLabels(); 
yl.setFormatter(new YourValueFormatter()); 

UPDATE (für Versionen 2.0.0+ dieser library):

nun ein ValueFormatter kann für jeden DataSet separat eingestellt werden, oder die Das gleiche ValueFormatter kann für das gesamte Datenobjekt eingestellt werden, das alle DataSets enthält. Außerdem heißt die Klasse YLabels jetzt YAxis.

Beispiel:

// set for whole data object (individual DataSets also possible) 
LineData data = new LineData(...); 
data.setValueFormatter(new YourValueFormatter()); 

// YLabels are now called YAxis 
YAxis yAxis = mChart.getAxisLeft(); // get the left or right axis 
yAxis.setValueFormatter(new YourAxisValueFormatter()); 

UPDATE (für Versionen 3.0.0+ dieser library):

Die Schnittstellen für die Formatierung wurden in ihrer Funktionalität umbenannt und erweitert. Jetzt kann IAxisValueFormatter verwendet werden, um die Werte von XAxis und YAxis zu formatieren.

Link zum IValueFormatter documentation.

Link zum IAxisValueFormatter documentation.

+0

Aahhhh, jetzt verstehe ich es. Sehr schöne und einfache Lösung! – Dennis

+0

Phil, seit wann unterstützen YLabels die Methode setValueFormatter()? Ich versuche das Gleiche zu tun, aber es gibt keine solche Methode ... (Ich brauche LargeValueFormatter()) für meinen Fall, und es scheint nicht zu funktionieren, wenn ich LargeValueFormatter() einstelle. zum Diagramm selbst entweder. – Mike

+0

Verwenden Sie die neueste Version der Bibliothek (1.7.4)? https://github.com/PhilJay/MPAndroidChart/releases –