Charts: BarChartView: xAxis-Werte sind nicht an Balken ausgerichtet

Erstellt am 22. Jan. 2017  ·  10Kommentare  ·  Quelle: danielgindi/Charts

Ich habe meine Diagramme auf Charts 3.0.1 migriert. Es hat ganz reibungslos funktioniert, aber ich schaffe es nicht, die Balkendiagramme an meinen xAxis-Werten auszurichten. Das folgende Diagramm sollte ein Histogramm von Werten zwischen 0 und 10 (11 Balken) zeigen.

Variante 1

                barChart.xAxis.granularity = 1.0
                barChart.xAxis.granularityEnabled = true
                barChart.xAxis.setLabelCount(11, force: true)

Alle Indexwerte werden angezeigt, aber nicht an den Balken ausgerichtet.

bildschirmfoto 2017-01-22 um 19 06 29

Variante 2 (centerAxisLabelsEnabled)

                barChart.xAxis.granularity = 1.0
                barChart.xAxis.granularityEnabled = true
                barChart.xAxis.centerAxisLabelsEnabled = true
                barChart.xAxis.setLabelCount(11, force: true)

Auf der xAchse fehlt der Index 10.

bildschirmfoto 2017-01-22 um 19 16 36

Variante 3 (fitBars)

                barChart.xAxis.granularity = 1.0
                barChart.xAxis.granularityEnabled = true
                barChart.xAxis.centerAxisLabelsEnabled = true
                barChart.xAxis.setLabelCount(11, force: true)
                barChart.fitBars = true

Die xAchse beginnt mit -1

bildschirmfoto 2017-01-22 um 19 24 59

**Variante 4 (axisMinimum und axisMaximum)

                barChart.xAxis.granularity = 1.0
                barChart.xAxis.granularityEnabled = true
                barChart.xAxis.centerAxisLabelsEnabled = true
                barChart.xAxis.setLabelCount(11, force: true)
                barChart.xAxis.axisMinimum = 0.0
                barChart.xAxis.axisMaximum = 10.0
                barChart.fitBars = true

Die Balken sind nicht mehr zentriert und der letzte xAxis-Wert 10 wird nicht angezeigt.

bildschirmfoto 2017-01-22 um 19 30 14

Ich habe ein paar andere Kombinationen ausprobiert, konnte aber die Balken nicht mit meinen Zahlen 0 ... 10 auf der x-Achse ausrichten. Hat jemand eine Idee?

Hilfreichster Kommentar

Für alle anderen, die damit zu kämpfen haben, stellte ich fest, dass ich diese Kombination aus Granularität und setLabelCount() nicht verwenden konnte, da sonst die Beschriftungen falsch ausgerichtet und/oder linke und rechte Balken abgeschnitten würden.

Allerdings scheint das bei mir zu funktionieren:

self.periodGraphView.xAxis.labelCount = barValues.count
self.periodGraphView.xAxis.spaceMin = 0.5
self.periodGraphView.xAxis.spaceMax = 0.5
self.periodGraphView.xAxis.granularityEnabled = true
self.periodGraphView.xAxis.granularity = 1

Alle 10 Kommentare

Ein weiterer Prozess. Sieht meinem erwarteten Ergebnis sehr ähnlich, aber der erste und der letzte Balken werden nur zur Hälfte angezeigt (siehe auch isst #2105).

               barChart.xAxis.axisMinimum = 0.0
                barChart.xAxis.axisMaximum = 10.0
                barChart.xAxis.granularity = 1.0
                barChart.xAxis.granularityEnabled = true
                barChart.xAxis.labelCount = 11
                barChart.fitBars = true

bildschirmfoto 2017-01-22 um 19 55 57

Das ähnlichste Diagrammlayout im Vergleich zu Charts 2.x gibt mir den folgenden Code. Aber wie kann ich die Gitterlinien zwischen den Balken verschieben, wie es in Charts 2.x gemacht wird? Ich habe xAxis.centerAxisLabelsEnabled = true und fitBars = true ausprobiert. Beide Attribute haben mein xAxis/Bar-Layout beschädigt.

                barChart.xAxis.granularity = 1.0
                barChart.xAxis.granularityEnabled = true
                barChart.xAxis.labelCount = 11

bildschirmfoto 2017-01-22 um 20 06 19

@SvenMuc Ich habe auch das gleiche Problem mit kombiniertem Diagramm (Balken- und Liniendiagramm) ... Die Breite des ersten und letzten Balkens beträgt nur die Hälfte. Wenn Sie die Lösung gefunden haben, helfen Sie mir bitte

Für alle anderen, die damit zu kämpfen haben, stellte ich fest, dass ich diese Kombination aus Granularität und setLabelCount() nicht verwenden konnte, da sonst die Beschriftungen falsch ausgerichtet und/oder linke und rechte Balken abgeschnitten würden.

Allerdings scheint das bei mir zu funktionieren:

self.periodGraphView.xAxis.labelCount = barValues.count
self.periodGraphView.xAxis.spaceMin = 0.5
self.periodGraphView.xAxis.spaceMax = 0.5
self.periodGraphView.xAxis.granularityEnabled = true
self.periodGraphView.xAxis.granularity = 1

Hey, danke, das hat mir geholfen, die Beschriftungen der X-Achse in die Mitte des Balkens zu bringen, aber wie wäre es, wenn der letzte Balken abgeschnitten würde?
Wie hast du es behoben?

Hey, danke, das hat mir geholfen, die Beschriftungen der X-Achse in die Mitte des Balkens zu bringen, aber wie wäre es, wenn der letzte Balken abgeschnitten würde?
Wie hast du es behoben?

barChart.xAxis.axisMaximum = Double(values.count)

barChart.xAxis.centerAxisLabelsEnabled = false
Dies wurde in meinem Fall behoben.
Legen Sie centerAxisLabelsEnabled nicht auf true fest

siehe Charts-Demo. das ist lange her ... sollte also jetzt ungültig sein.

chartView.xAxis.axisMinimum = -0.5 //um zu vermeiden, dass der letzte Balken halbiert wird

das hat bei mir funktioniert

Kann mir jemand den gesamten Code des Diagramms geben, das ich tatsächlich angewendet habe, aber nicht funktioniert hat

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Bharati555 picture Bharati555  ·  4Kommentare

heumn picture heumn  ·  3Kommentare

newbiebie picture newbiebie  ·  3Kommentare

brytnvmg picture brytnvmg  ·  4Kommentare

Shunshine07 picture Shunshine07  ·  3Kommentare