web-dev-qa-db-fra.com

MPAndroidChart comment définir la valeur minimale et maximale de l'axe des y ou le zoom par défaut?

J'utilise MPAndroidChart pour afficher le graphique boursier, mais la valeur de la ligne Y est si proche que le graphique ressemble à ceci enter image description here

Je peux utiliser le zoom au doigt comme ça enter image description here

Qui est je veux le défaut ressemble à

Est-il possible de définir la valeur maximale et minimale de la ligne Y ou le zoom par défaut?.

J'ai essayé la fonction lib, mais ça ne marche pas

9
Urchin

Jetez un coup d'œil à la documentation de YAxis . Diverses méthodes vous permettent de contrôler la plage des axes.

  • setStartAtZero(boolean enabled): Si cette option est activée, la valeur minimale de cet axe sera toujours égale à zéro (0), quel que soit le type de données affiché par le diagramme.
  • setAxisMaxValue(float max): définit une valeur maximale personnalisée pour cet axe. Si définie, cette valeur ne sera pas calculée automatiquement en fonction des données fournies. 
  • setAxisMinValue(float min): définit une valeur minimale personnalisée pour cet axe. Si définie, cette valeur ne sera pas calculée automatiquement en fonction des données fournies. 
  • setSpaceTop(float percent): définit l'espacement supérieur (en pourcentage de la plage d'axes totale) de la valeur la plus élevée du graphique par rapport à la valeur la plus élevée de l'axe. 
  • setSpaceBottom(float percent): définit l'espacement inférieur (en pourcentage de la plage d'axes totale) de la valeur la plus basse du graphique par rapport à la valeur la plus basse de l'axe. 
29
Philipp Jahoda

Il existe une sorte de dépendance entre les axes gauche et droit. Je n'avais que le bon axe activé et réglé 

chart.getAxisRight().setStartAtZero(false);

mais cela n'a pas fonctionné tant que je n'ai pas défini le même paramètre sur leftYAxis, qui a été désactivé. Donc j'ai maintenant

 chart.getAxisLeft().setStartAtZero(false);
 chart.getAxisRight().setStartAtZero(false);

modifier:

setStartAtZero est obsolète, le code recommande d'utiliser setAxisMinimum à la place.

 * This method is deprecated.
 * Use setAxisMinimum(...) / setAxisMaximum(...) instead.

Vous pouvez trouver plus d'informations à ce sujet dans documentation .

11
Lanitka

Vous pouvez également utiliser le 

mChart.setVisibleYRangeMaximum(150, AxisDependency.LEFT);

méthode pour définir la valeur visible la plus élevée sur l’axe des y.

4
Himanshu Rathore

utilisez setScaleMinima () et chart.moveViewToY (max), YAxis.AxisDependency.LEFT).

1
Urchin

s'il vous plaît essayez ceci, je ne suis pas sûr que ce que vous voulez.

mChart.setPinchZoom (true); mChart.setScaleMinima (200, 200); // pour les valeurs min et max pour le zoom i Nous espérons pouvoir régler votre problème.

0
yemonkyaw