Ich hatte zufällig die Möglichkeit, eine einfache App mit Android Studio zu entwickeln. Als ich ein Diagramm darin zeichnen wollte, stellte ich fest, dass ich eine Bibliothek namens "MPAndroidChart" verwenden sollte, also habe ich ein Balkendiagramm erstellt, während ich auf einige Websites verwiesen habe. Die Beschriftung der x-Achse verlief jedoch nicht gut und ich hatte ungefähr eine Stunde lang Schwierigkeiten, daher werde ich den Prozess und die Lösung beschreiben. (Wenn Sie über die freie Kapazität verfügen, möchte ich das Bild einfügen, das später tatsächlich verschoben wurde.)
Der Teil, der nicht mit diesem Problem zusammenhängt, ist weitgehend gebrochen, aber die Gliederung ist wie folgt. Ich werde auf diesen Artikel verweisen.
"Erstellen eines einfachen Balkendiagramms mit 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);
//Datenerfassung anzeigen
BarData data = new BarData(getBarData());
chart.setData(data);
//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 = {"","Apfel", "Mandarine", "Pfirsiche"};
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
}
}
Besonders dieser letzte Teil.
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
Auf anderen Sites usw. wird die zuvor als String-Array definierte als Argument für den neuen IndexAxisValueFormatter angegeben. Aus irgendeinem Grund wird die Achse jedoch abhängig von den zuzuweisenden Daten möglicherweise nicht richtig angezeigt. (Ursprünglich sollten Äpfel, Mikans und Oberschenkel für die drei Elemente gekennzeichnet werden. Aus irgendeinem Grund werden die drei Elemente jedoch als Mikans, Oberschenkel (keine Beschriftungen) bezeichnet. Nur der Inhalt der Beschriftungen. Es hat in einigen Fällen funktioniert)
Unabhängig vom Grund hatte ich das Gefühl, dass ich mich nur schnell bewege. Als ich es nachschlug, kam ich an der folgenden Stelle an.
"MPAndroidChart - Hinzufügen einer Beschriftung zu einem Balkendiagramm" https://www.366service.com/jp/qa/94329e5e85f6eddc6886945506ec0759
Hier wird erklärt, dass die Beschriftung durch Erstellen eines Formatierers ohne Verwendung von IndexAxisValueFormatter festgelegt wird. Das Diagramm wurde behoben, indem LabelFormatter in die Klasse eingefügt wurde, die Sie verwenden möchten, und das Argument von setValueFormatter entsprechend angepasst wurde.
hoge.java
//Bis vor einiger Zeit
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
//Nach dem Update
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];
}
}
Ich war mir nicht sicher, warum der IndexAxisValueFormatter nicht wie beabsichtigt funktionierte. Ich denke, es hat etwas mit der Version der Bibliothek zu tun ... Überraschenderweise gab es nur wenige Artikel rund um MPAndroidChart, und ich konnte keine japanische Site finden, die auf eine ähnliche Wand stößt. Deshalb habe ich daraus einen Artikel gemacht, obwohl es sich um eine Sammlung von Wissen handelt. Ich denke, es ist besser, auf den folgenden Artikel für den tatsächlichen Code usw. zu verweisen.
Es gibt viele Elemente, die für Diagramme festgelegt werden müssen, und ich konnte kein Element finden, das leicht verständlich organisiert war. Daher wollte ich es selbst organisieren, wenn ich die Gelegenheit dazu hatte.
"Erstellen eines einfachen Balkendiagramms mit MPAndroidChart" https://qiita.com/iKimishima/items/7fd192a074739cf5290b "MPAndroidChart - Hinzufügen einer Beschriftung zu einem Balkendiagramm" https://www.366service.com/jp/qa/94329e5e85f6eddc6886945506ec0759
Recommended Posts