Si vous souhaitez créer un graphique simple avec MPAndroidChart, Au contraire, il était difficile de faire un graphique simple à cause des fonctions riches. Il est devenu ver3.0.2 et était un peu différent de la version précédente (comme l'affichage de l'étiquette de l'axe des x ...)
Je voulais faire un simple graphique à barres comme celui-ci.
・ Afficher l'étiquette sur l'axe x ・ Définissez n'importe quelle couleur pour chaque graphique
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 Y(la gauche)
YAxis left = chart.getAxisLeft();
left.setAxisMinimum(0);
left.setAxisMaximum(100);
left.setLabelCount(5);
left.setDrawTopYLabelEntry(true);
//En affichage entier
left.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return "" + (int)value;
}
});
//Axe Y(droite)
YAxis right = chart.getAxisRight();
right.setDrawLabels(false);
right.setDrawGridLines(false);
right.setDrawZeroLine(true);
right.setDrawTopYLabelEntry(true);
//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 = {"","langue nationale", "Math", "Anglais"};
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
XAxis bottomAxis = chart.getXAxis();
bottomAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
bottomAxis.setDrawLabels(true);
bottomAxis.setDrawGridLines(false);
bottomAxis.setDrawAxisLine(true);
//Affichage sur le graphique
chart.setDrawValueAboveBar(true);
chart.getDescription().setEnabled(false);
chart.setClickable(false);
//Guide d'utilisation
chart.getLegend().setEnabled(false);
chart.setScaleEnabled(false);
//animation
chart.animateY(1200, Easing.EasingOption.Linear);
}
//Obtenir des données de graphique à barres
private List<IBarDataSet> getBarData(){
//Données à afficher
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(1, 60));
entries.add(new BarEntry(2, 80));
entries.add(new BarEntry(3, 70));
List<IBarDataSet> bars = new ArrayList<>();
BarDataSet dataSet = new BarDataSet(entries, "bar");
//Afficher sous forme d'entier
dataSet.setValueFormatter(new IValueFormatter() {
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
return "" + (int) value;
}
});
//Ne pas souligner
dataSet.setHighlightEnabled(false);
//Définir la couleur de la barre
dataSet.setColors(new int[]{R.color.material_blue, R.color.material_green, R.color.material_yellow}, this);
bars.add(dataSet);
return bars;
}
}
Pour afficher une étiquette sur l'axe des x, cela ressemble à la conversion de la valeur numérique affichée sur l'axe des x des données en une étiquette. Un réglage de couleur arbitraire pour chaque graphique peut être exécuté en définissant la liste de couleurs dans la liste de données. De plus, par défaut, vous pouvez effectuer un zoom avant et arrière, appuyer pour mettre en surbrillance, etc. J'ai dû faire beaucoup pour l'ajuster car il y avait beaucoup d'échelles.
référence Étiquette sur l'axe x (https://github.com/PhilJay/MPAndroidChart/issues/2044) Couleur pour chaque graphique (https://stackoverflow.com/questions/38872181/mpandroidchart-bar-chart-how-to-change-color-of-each-label)
Recommended Posts