web-dev-qa-db-fra.com

Comment formater des valeurs dans MPAndroidChart?

2 Questions sur la bibliothèque MPAndroidChart . Toutes mes valeurs y sont des entiers, mais affichées en décimales. Comment puis-je les afficher sous forme d'entiers (sans les chiffres)? Comment puis-je empêcher que les étiquettes yl soient également affichées en décimales? Je sais qu'il y a un setFormatter pour les valeurs y, je ne comprends pas comment l'utiliser ...

23
Dennis

Jetez un œil au IValueFormatterinterface fourni par la bibliothèque. Avec cette interface, vous pouvez complètement personnaliser ce qui s'affiche sur le graphique en fonction de votre propre logique.

Usage:

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

[~ # ~] mise à jour [~ # ~] (pour les versions 2.0.0 + de cette [bibliothèque] [2]):

Maintenant, un ValueFormatter peut être défini pour chaque DataSet séparément, ou le même ValueFormatter can être défini pour l'ensemble de l'objet de données contenant tout DataSets. De plus, la classe YLabels est maintenant appelée YAxis.

Exemple:

// 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());

[~ # ~] mise à jour [~ # ~] (pour les versions 3.0.0 + de cette [bibliothèque] [2]):

Les interfaces de formatage ont été renommées et étendues dans leurs fonctionnalités. Maintenant, le IAxisValueFormatter peut être utilisé pour formater les valeurs de XAxis et YAxis. L'interface IValueFormatter est utilisée pour personnaliser les valeurs du graphique.

Lien vers la documentation ValueFormatter .

35
Philipp Jahoda

Si tout ce que vous voulez c'est changer le nombre de décimales sur les valeurs, le DefaultValueFormatter suffira.

pieDataSet.setDefaultValueFormatter(new DefaultValueFormatter(digits = 1))
//where digits is the number of decimal places

L'exemple ci-dessus formatera 88,65 en 88,7

0
peter