2016-04-20 13 views
5

Come posso modificare gli attributi (ad esempio dimensione carattere, colore del testo, ecc.) Del testo sopra una barra specifica in un BarChart?Attributi di testo sopra la barra specifica con ios-charts

Bar chart example.

In questo esempio, voglio "- $ 5.000,00" in rosso e per aumentare la dimensione del carattere di ogni testo sopra bar.

Ecco po 'di codice:

@IBOutlet weak var barChartView: BarChartView! 


// init barChartView -------------------------------------- 
barChartView.descriptionText = "" 

barChartView.legend.enabled = false 

// grid lines 
barChartView.xAxis.drawAxisLineEnabled = false 
barChartView.xAxis.drawGridLinesEnabled = false 
barChartView.leftAxis.drawAxisLineEnabled = false 
barChartView.leftAxis.drawGridLinesEnabled = false 
barChartView.rightAxis.drawAxisLineEnabled = false 
barChartView.rightAxis.drawGridLinesEnabled = false 

// X-axis line 
barChartView.xAxis.drawAxisLineEnabled = true 
barChartView.xAxis.axisLineColor = axisGridsAndLabelsColor 

// X-axis labels 
barChartView.xAxis.labelTextColor = axisGridsAndLabelsColor 
barChartView.xAxis.labelPosition = .Bottom 

// Y-axis labels 
accountsBarChartView.leftAxis.labelTextColor = axisGridsAndLabelsColor 
accountsBarChartView.rightAxis.drawLabelsEnabled = false 
//--------------------------------------------------------- 


// bar chart's data 
var dataPoints = [String]() 
var values = [Double]() 
var colors = [UIColor]() 

// build bar chart's data... 


// dataEntries and barChartDataSet 
var dataEntries = [ChartDataEntry]() 
for i in 0..<dataPoints.count 
{ 
    let dataEntry = BarChartDataEntry(value: values[i], xIndex: i) 
    dataEntries.append(dataEntry) 
} 

let barChartDataSet = BarChartDataSet(yVals: dataEntries, label: "") 
barChartDataSet.colors = colors 


// valueFormatter 
let currencyNumberFormatter = NSNumberFormatter() 
currencyNumberFormatter.numberStyle = .CurrencyStyle 
currencyNumberFormatter.minimumFractionDigits = 2 
currencyNumberFormatter.maximumFractionDigits = 2 

barChartDataSet.valueFormatter = currencyNumberFormatter 


// barChartData 
let barChartData = BarChartData(xVals: dataPoints, dataSet: barChartDataSet) 
barChartView.data = barChartData 
+0

creare sbocchi alle etichette di testo e modificare i loro attributi? come textLabelXY.fontsize ecc? –

+1

cosa hai provato finora? –

+0

Non penso di poter creare punti vendita da etichette all'interno di 'BarChartView'. Ho cercato di trovare alcune proprietà di 'BarChartDataSet', ma l'unico che riguardava quelle etichette che ho trovato era' valueFormatter', che opera su 'String's (non su' NSAttributedString'). – horothesun

risposta

13

Per impostare il proprio colori/font è possibile utilizzare le proprietà valueColors e 'valueFont' di BarChartDataSet classe

così sarà qualcosa di simile

... 

var valueColors = [UIColor]() 
// dataEntries and barChartDataSet 
var dataEntries = [ChartDataEntry]() 
for i in 0..<dataPoints.count 
{ 
    let dataEntry = BarChartDataEntry(value: values[i], xIndex: i) 
    dataEntries.append(dataEntry) 
    if values[i] < 0 { 
     valueColors.append(UIColor.redColor()) 
    } 
    else { 
     valueColors.append(UIColor.greenColor()) 
    } 
} 

let barChartDataSet = BarChartDataSet(yVals: dataEntries, label: "") 
barChartDataSet.colors = colors 
barChartDataSet.valueColors = valueColors 
barChartDataSet.valueFont = *font you want* 
+0

Come posso cambiare l'etichetta sopra la barra in swift2 ?? Ho raggiunto questo in swift 3 http://stackoverflow.com/questions/41979926/how-to-achieve-trackball-on-charts-in-swift-3x –

+0

È anche possibile modificare il carattere del valore come attributoString? – David

0

Se si desidera modificare gli attributi di testo delle etichette sotto le barre è possibile utilizzare:

barChartView.xAxis.labelFont = UIFont.systemFont(ofSize: 5)

barChartView.xAxis.labelTextColor = UIColor.red