具有ios-charts的特定栏上方文本的属性

时间:2016-04-20 12:26:11

标签: ios swift swift2 ios-charts

如何更改BarChart中特定小节上方文字的属性(例如字体大小,文字颜色等等)?

Bar chart example.

在这个例子中,我想要红色的" - $ 5,000.00" ,并增加条形图上方每个文字的字体大小。

这里有一些代码:

@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

2 个答案:

答案 0 :(得分:17)

要设置自己的颜色/字体,您可以使用valueColors类的属性BarChartDataSet和'valueFont'

所以它会是这样的

...

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*

答案 1 :(得分:1)

如果您想更改标签以下条的文字属性,您可以使用:

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

barChartView.xAxis.labelTextColor = UIColor.red