J'ai eu l'opportunité de développer une application simple en utilisant Android Studio. Quand j'ai voulu y dessiner un graphique, j'ai trouvé que je devais utiliser une bibliothèque appelée "MPAndroidChart", j'ai donc créé un graphique à barres en me référant à certains sites. Cependant, l'étiquetage de l'axe x ne s'est pas bien passé et j'ai eu du mal pendant environ une heure, je vais donc décrire le processus et la solution. (Si vous avez la capacité disponible, je voudrais coller l'image qui a été déplacée plus tard)
La partie qui n'est pas liée à ce problème est en grande partie cassée, mais le contour est le suivant. Je vais me référer à cet article.
"Création d'un graphique à barres simple avec MPAndroidChart" https://qiita.com/iKimishima/items/7fd192a074739cf5290b
MainActivity.java
public class MainActivity extends AppCompatActivity {
protected BarChart chart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chart = (BarChart) findViewById(R.id.chart1);
//Afficher l'acquisition de données
BarData data = new BarData(getBarData());
chart.setData(data);
//Axe X
XAxis xAxis = chart.getXAxis();
//Liste des étiquettes à afficher sur l'axe X(la première""Est la position de l'origine)
final String[] labels = {"","pomme", "Mandarine", "Les pêches"};
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
}
}
Surtout cette dernière partie.
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
Sur d'autres sites, etc., celui défini à l'avance comme un tableau de chaînes est donné en argument au nouveau IndexAxisValueFormatter, mais pour une raison quelconque, l'axe peut ne pas s'afficher correctement en fonction des données à affecter. (À l'origine, les pommes, les mikans et les cuisses devraient être étiquetés pour les trois éléments, mais pour une raison quelconque, les trois éléments sont étiquetés comme des mikans, des cuisses (sans étiquettes). Juste le contenu des étiquettes. Cela a fonctionné dans certains cas)
Quelle que soit la raison, j'ai eu le sentiment que "il suffit d'aller vite", alors quand je l'ai recherché, je suis arrivé sur le site suivant.
"MPAndroidChart-Ajout d'une étiquette à un graphique à barres" https://www.366service.com/jp/qa/94329e5e85f6eddc6886945506ec0759
Ici, il y a une explication selon laquelle l'étiquette est définie en créant un formateur sans utiliser IndexAxisValueFormatter. Le graphique a été corrigé en insérant LabelFormatter dans la classe que vous souhaitez utiliser et en ajustant l'argument de setValueFormatter en conséquence.
hoge.java
//Jusqu'à il y a quelque temps
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
//Après la mise à jour
xAxis.setValueFormatter(new LabelFormatter(labels));
fuga.java
public class LabelFormatter implements IAxisValueFormatter {
private final String[] mLabels;
public LabelFormatter(String[] labels) {
mLabels = labels;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
return mLabels[(int) value];
}
}
Je ne savais pas pourquoi IndexAxisValueFormatter ne fonctionnait pas comme prévu. Je pense que cela a quelque chose à voir avec la version de la bibliothèque ... Étonnamment, il y avait peu d'articles autour de MPAndroidChart, et je n'ai pas trouvé de site japonais qui touche un mur similaire, alors j'en ai fait un article, bien qu'il s'agisse d'un recueil de connaissances. Je pense qu'il vaut mieux se référer à l'article suivant pour le code réel, etc.
Il y a de nombreux éléments à définir pour les graphiques, et je ne pouvais pas en trouver un qui était organisé de manière facile à comprendre, donc je voulais l'organiser moi-même si j'en avais l'occasion.
"Création d'un graphique à barres simple avec MPAndroidChart" https://qiita.com/iKimishima/items/7fd192a074739cf5290b "MPAndroidChart-Ajout d'une étiquette à un graphique à barres" https://www.366service.com/jp/qa/94329e5e85f6eddc6886945506ec0759
Recommended Posts