[JAVA] Als ich mit MPAndroidChart ein Balkendiagramm erstellt habe, war die Beschriftung der x-Achse aus irgendeinem Grund falsch ausgerichtet

Einführung

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.)

Problematischer Teil

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)

Lösung

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];
    }
}

Nach alldem

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.

Artikel, die sehr hilfreich waren

"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

Als ich mit MPAndroidChart ein Balkendiagramm erstellt habe, war die Beschriftung der x-Achse aus irgendeinem Grund falsch ausgerichtet
Java: Eine Geschichte, in der ich mich unwohl fühlte, als mir beigebracht wurde, Strings ohne Grund mit Gleichen zu vergleichen.
Zeichnen Sie mit MPAndroidChart gleichzeitig Balkendiagramm und Liniendiagramm
Ich habe ein Check-Tool für das Release-Modul erstellt
Wenn der Vagabundbefehl nicht funktioniert
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 1) erstellt.
Ich habe nachgesehen, weil die Antwort beim Debuggen mit Tomcat 8 seltsam war
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 5) erstellt:
Ich habe mit Swing eine GUI erstellt
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Ich hatte Probleme bei der Arbeit und habe ein IntelliJ-Plug-In erstellt
Probleme, denen ich beim Erstellen der Digdag-Umgebung mit Docker verfallen war
Beim Formatieren mit SimpleDateFormat blieb ich beim Umgang mit Zeitzonen
Als ich eine Methode für Premium Friday erstellen wollte, war sie bereits in der Java 8-Standard-API enthalten
Erstellen eines einfachen Balkendiagramms mit MPAndroidChart
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe ein Plug-In für IntelliJ IDEA erstellt
Ich habe eine Janken App mit Kotlin gemacht
Ich habe eine Janken App mit Android gemacht
Ich war ein wenig süchtig nach dem S3-Prüfsummenvergleich, machen Sie sich also eine Notiz.
Ich habe eine einfache Grafikbibliothek für Smartphone-Apps erstellt [MP Android Chart Kai]
Eine Geschichte, die mir sehr gut gefallen hat, als ich mit Ruby Triple DES gemacht habe
[Ein Muss für junge Ingenieure] Eine Geschichte, die die Welt erweitert hat, als ich tatsächlich einen Webdienst betrieben habe, den ich selbst erstellt habe