Bibliothek, die ich verwende: charts
Ich habe Liniendiagramm mit Werten an bestimmten Tagen im Jahr. Ich möchte nicht jeden Tag als Label auf der x-Achse zeichnen (es kann mehr als 300 Tage reichen), also möchte ich nur Monate zeichnen. Im Moment sieht meine xVals wie folgt aus: [nil, nil, nil, "07/2016", nil nil nil (..)]. Leider wird kein Etikett angezeigt.
Gibt es eine andere Möglichkeit, das gewünschte Verhalten zu erreichen?
-Code (x-Achse-Werte):
So rendern Sie nur ausgewählte Achsenbeschriftungen in ios-Diagrammen
while date.compare(to) != NSComparisonResult.OrderedDescending { // iterate over all days in range
let components = currentCalendar.components([.Day, .Month , .Year], fromDate: date)
if components.day != 1 {
vals.append(nil)
} else { // first day of the month
vals.append(String(components.month) + "/" + String(components.year))
}
let incrementComponents = NSDateComponents()
incrementComponents.day = 1
date = currentCalendar.dateByAddingComponents(incrementComponents, toDate: date, options: [])!
}
Und Einträge:
for point in base!.points {
if let index = chartValuesFormatter?.indexFromDate(point.date) {
entries.append(ChartDataEntry(value: point.value, xIndex: index))
}
}
Im Allgemeinen funktioniert es, wenn ich alle Werte sind einige von ihnen angeben angezeigt und Einträge werden korrekt wiedergegeben. Mein einziges Problem ist, nur Monatsetiketten am Anfang von Monatszeiträumen anzuzeigen.
nur den Monat setzen für die ganzen Wert, wird die lib approtiate Anzahl des Wertes auswählen – Tj3n
zu zeigen, aber manchmal wird es im selben Monat mehr als einmal zeigen. Ich muss Monatsetiketten am 1. jedes Monats zeigen (oder weniger oft, wenn es zu viele Monate gibt - das sollte die Bibliothek selbst optimieren). –
Können Sie bitte etwas Code einfügen, wie Sie die Daten erstellen. – Jassi