2016-10-29 3 views
5

Ich habe kürzlich begonnen, die ios-Diagrammbibliothek zu verwenden und habe Schwierigkeiten, Informationen zur Bearbeitung der x-Achse mit dem swift3-Update zu finden.So legen Sie X-Achsenbeschriftungen mit IOS-Diagrammen fest

Was ich tun möchte, ist die x-Achse mit Zeitwerten, z.B. 2:03:00, 2:03:01, 2:03:02 usw. In den Tutorials, die ich online finde, scheint das sehr einfach zu sein; Viele von ihnen verwenden Monate des Jahres als X-Achsen-Label.

In der Aktualisierung von swift3 initialisiert Charts jedoch Werte mit x- und y-Werten, und ich bin mir nicht sicher, wie man in dieser Version der Bibliothek Labels verwendet. Kann jemand Etiketten in Diagrammen mit swift3 erstellen?

+0

Würde diese Frage/Antwort helfen? : [link] (http://stackoverflow.com/questions/39960302/how-to-add-labels-for-xaxis-for-barchartview-in-ios-charts) – Lyra

+0

Bitte beachten Sie, um zu kommentieren, warum Sie notieren Diese Frage – pylover

Antwort

8

eine Klasse wie folgt erstellen:

import Foundation 
    import Charts 

    @objc(BarChartFormatter) 
    class ChartFormatter:NSObject,IAxisValueFormatter{ 

    var months: [String]! = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] 

    func stringForValue(_ value: Double, axis: AxisBase?) -> String { 
    return months[Int(value)] 
    } 

} 

der x-Achse wie folgt einstellen:

let xAxis=XAxis() 
    let chartFormmater=ChartFormatter() 

    for i in index{ 
     chartFormmater.stringForValue(Double(i), axis: xAxis) 
    } 

    xAxis.valueFormatter=chartFormmater 
    chartView.xAxis.valueFormatter=xAxis.valueFormatter 
+0

Wissen Sie, wie man das mit Pie Charts macht? da XAxis ist keine Sache in Tortendiagrammen und die Etiketten Initialisierung wurde auch entfernt –

+0

Entschuldigung, ich nicht jetzt :( –

+1

es dauerte eine Weile, aber in der neuesten Version der Charts-Bibliothek hat die Kreisdiagramm einen neuen Eintrag Initialisierer benannte pieChartDataEntry, die ein Label als Argument akzeptiert 'Let Eintrag = PieChartDataEntry (Wert: Double (EntryValue), Label: Label)' –

14

Die richtige Lösung für X-Achsen-String-Etiketten in Swift 3+

let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] 
    barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values:months) 
    barChartView.xAxis.granularity = 1 
+0

Granularität wird die richtige Position für xValues ​​unter den Taktlinien gesetzt. –

+0

Ich verwende Ihren Code, um die xValues ​​anzuzeigen, aber es zeigt Monat für Alternative –

1

Ich schlage vor, flexibler und hübsche Lösung zu verwenden. Sie sollten eine Formatierungsklasse wie dieses:

final class MonthNameFormater: NSObject, IAxisValueFormatter { 
    func stringForValue(_ value: Double, axis _: AxisBase?) -> String { 
     return Calendar.current.shortMonthSymbols[Int(value)] 
    } 
} 

diese Art zu Ihrer barChartView ein:

barChartView.xAxis.valueFormatter = MonthNameFormater() 
barChartView.xAxis.granularity = 1.0 

Als Ergebnis Sie haben: Jan, Feb, ..., Dec Außerdem, wenn Sie möchten, dass Sie Präsentation ändern Art sollte shortMonthSymbols mit anderen ändern: monthSymbols, veryShortMonthSymbols, standaloneMonthSymbols

Verwandte Themen