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?
Antwort
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.
Aahhhh, jetzt verstehe ich es. Sehr schöne und einfache Lösung! – Dennis
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
Verwenden Sie die neueste Version der Bibliothek (1.7.4)? https://github.com/PhilJay/MPAndroidChart/releases –
Haben Sie es gelöst? ich meine ... was hast du in die Methode getFormattedValue() der ValueFormatter-Schnittstelle? – gumuruh