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.
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.
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
**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.
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?
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
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
@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
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: