Wenn Sie mit MPAndroidChart ein einfaches Diagramm erstellen möchten, Im Gegenteil, es war aufgrund der umfangreichen Funktionen schwierig, ein einfaches Diagramm zu erstellen. Es wurde zu Version 3.0.2 und unterschied sich ein wenig von der vorherigen Version (z. B. die Anzeige der x-Achsenbeschriftung ...).
Ich wollte ein einfaches Balkendiagramm wie dieses erstellen.
・ Beschriftung auf der x-Achse anzeigen ・ Stellen Sie für jedes Diagramm eine beliebige Farbe ein
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);
//Datenerfassung anzeigen
BarData data = new BarData(getBarData());
chart.setData(data);
//Y-Achse(links)
YAxis left = chart.getAxisLeft();
left.setAxisMinimum(0);
left.setAxisMaximum(100);
left.setLabelCount(5);
left.setDrawTopYLabelEntry(true);
//In der Ganzzahlanzeige
left.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return "" + (int)value;
}
});
//Y-Achse(richtig)
YAxis right = chart.getAxisRight();
right.setDrawLabels(false);
right.setDrawGridLines(false);
right.setDrawZeroLine(true);
right.setDrawTopYLabelEntry(true);
//X-Achse
XAxis xAxis = chart.getXAxis();
//Liste der Beschriftungen, die auf der X-Achse angezeigt werden sollen(Der Erste""Ist die Position des Ursprungs)
final String[] labels = {"","Landessprache", "Mathematik", "Englisch"};
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
XAxis bottomAxis = chart.getXAxis();
bottomAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
bottomAxis.setDrawLabels(true);
bottomAxis.setDrawGridLines(false);
bottomAxis.setDrawAxisLine(true);
//Anzeige in der Grafik
chart.setDrawValueAboveBar(true);
chart.getDescription().setEnabled(false);
chart.setClickable(false);
//Gebrauchsanweisung
chart.getLegend().setEnabled(false);
chart.setScaleEnabled(false);
//Animation
chart.animateY(1200, Easing.EasingOption.Linear);
}
//Balkendiagrammdaten abrufen
private List<IBarDataSet> getBarData(){
//Daten, die angezeigt werden sollen
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");
//Anzeige als Ganzzahl
dataSet.setValueFormatter(new IValueFormatter() {
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
return "" + (int) value;
}
});
//Nicht hervorheben
dataSet.setHighlightEnabled(false);
//Stellen Sie die Farbe der Leiste ein
dataSet.setColors(new int[]{R.color.material_blue, R.color.material_green, R.color.material_yellow}, this);
bars.add(dataSet);
return bars;
}
}
Um eine Beschriftung auf der x-Achse anzuzeigen, müssen Sie den auf der x-Achse der Daten angezeigten numerischen Wert in eine Beschriftung umwandeln. Eine beliebige Farbeinstellung für jedes Diagramm kann ausgeführt werden, indem die Farbliste in der Datenliste festgelegt wird. Darüber hinaus können Sie standardmäßig vergrößern und verkleinern, zum Hervorheben auf tippen usw. Ich musste ziemlich viel tun, um es anzupassen, weil es viele Skalen gab.
Referenz Beschriftung auf der x-Achse (https://github.com/PhilJay/MPAndroidChart/issues/2044) Farbe für jedes Diagramm (https://stackoverflow.com/questions/38872181/mpandroidchart-bar-chart-how-to-change-color-of-each-label)
Recommended Posts