2015-07-09 12 views
5

Sto costruendo un grafico utilizzando iOS-classifiche IOS CHARTiOS-Charts Float a intero asseY

Sto cercando di convertire i carri in int, ma iOS-charts consente solo per Galleggianti nella immissione dei dati:

 let result = ChartDataEntry(value: Float(month), xIndex: i) 

Qualcuno conosce il metodo per assicurarsi che vengano utilizzati solo gli interi?

risposta

7

Hai solo bisogno di regolare l'Esempio NSNumberFormatter ...

:

yAxis.valueFormatter = NSNumberFormatter() 
yAxis.valueFormatter.minimumFractionDigits = 0 

NSNumberFormatter è una classe molto potente, si può fare molto molto di più con esso. :-)

+0

Grazie per l'aiuto. Ho provato questo, ma purtroppo non ha funzionato. Non riesco a trovare alcuna informazione sul repository :( –

+1

@HannahLouisaCarney Funziona. Che cosa hai provato? Forse stai impostando il valore sbagliato Proprietà '' 'I diversi componenti hanno quella proprietà separata –

+0

Hai ragione, mi dispiace! I aggiunto: self.lineChartholder.leftAxis.valueFormatter = NSNumberFormatter() self.lineChartholder.leftAxis.valueFormatter? .minimumFractionDigits = 0 –

0

Questo ha funzionato per me. Tuttavia, le etichette dell'asse y si arrotondano quando si visualizzano numeri piccoli, quindi se si sta eseguendo il diagramma, ad esempio 1 o 2, il grafico visualizzerà 0 due volte. (Vedi qui: Force BarChart Y axis labels to be integers?)

let numberFormatter = NSNumberFormatter() 
numberFormatter.generatesDecimalNumbers = false 
chartDataSet.valueFormatter = numberFormatter 
// Converting to Int for small numbers rounds weird 
//barChartView.rightAxis.valueFormatter = numberFormatter 
//barChartView.leftAxis.valueFormatter = numberFormatter 
16

per SWIFT 3.0 e 3.0 Grafici devi abilitare e impostare la granularità per l'asse.

Esempio:

barChart.leftAxis.granularityEnabled = true 
barChart.leftAxis.granularity = 1.0 
0

Si può provare questo, ha funzionato bene per me

let formatter = NSNumberFormatter() 
formatter.numberStyle = .NoStyle 
formatter.locale = NSLocale(localeIdentifier: "es_CL") 
BarChartView.leftAxis.valueFormatter = formatter