簡體   English   中英

如何使用Swift在白色和14px的iOS條形圖中添加值?

[英]How to add values to this iOS Bar Chart in White and 14px using Swift?

我有一個條形圖,當前看起來像這樣:

在此處輸入圖片說明

我想將每個欄的值放在白色欄的末尾。

這是我當前的代碼:

viewDidLoad{
 self.results =  ["Lost", "Drawn", "Won"]
 let games = [total_Losses, total_Draws, total_Wins]
 self.setChart(dataPoints: self.results, values: games)
}


func setChart(dataPoints: [String], values: [Double]){

    let formato:BarChartFormatter = BarChartFormatter()
    let xaxis:XAxis = XAxis()
    let  xAxis : XAxis = self.barChartView.xAxis;
    barChartView.noDataText = "you need to provide some data for the chart."

    var dataEntries: [BarChartDataEntry] = Array()

    for i in 0..<dataPoints.count {
        let dataEntry = BarChartDataEntry(x: Double(i), y: values[i])
        dataEntries.append(dataEntry)
        formato.stringForValue (Double(i), axis: xaxis)
    }

    xaxis.valueFormatter = formato
    barChartView.xAxis.valueFormatter = xaxis.valueFormatter

    xAxis.labelFont = UIFont(name: "Avenir", size: 14.0)!
    xAxis.labelTextColor = UIColor.white

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "Games Played")
    let chartData = BarChartData(dataSets: [chartDataSet])
    chartDataSet.colors = ChartColorTemplates.material()


    barChartView.leftAxis.enabled = true
    barChartView.legend.enabled = false
    barChartView.chartDescription?.text = ""

    chartData.addDataSet(chartDataSet)
    barChartView.data = chartData
    barChartView.leftAxis.forceLabelsEnabled = true
    barChartView.rightAxis.forceLabelsEnabled = true

    barChartView.xAxis.granularityEnabled = true
    barChartView.xAxis.granularity = 1.0

    barChartView.leftAxis.drawGridLinesEnabled = false
    barChartView.rightAxis.drawGridLinesEnabled = false
    barChartView.xAxis.drawGridLinesEnabled = false

    barChartView.rightAxis.enabled = false
    barChartView.drawGridBackgroundEnabled = false
    self.barChartView.xAxis.labelPosition = XAxis.LabelPosition.bottom

}

如何在白色和像素大小為14的圖表中向條形添加值?

到目前為止,答案一直沒有奏效-我認為問題可能出在以下方面:

for i in 0..<dataPoints.count {
        let dataEntry = BarChartDataEntry(x: Double(i), y: values[i])
        dataEntries.append(dataEntry)
        formato.stringForValue (Double(i), axis: xaxis) // This line has a warning: "Result of call to 'stringForValue(_:axis:)' is unused
    }

上面的代碼片段將此類稱為以下類:

public class BarChartFormatter: NSObject, IAxisValueFormatter
{
var matches: [String]! = ["Lost", "Drawn", "Won"]

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

您可以使用BarChartData類對象設置顏色和字體。 對於您的情況,它是chartData

請遵循以下代碼,以設置所需的字體和標簽顏色。

chartData.setValueFont(UIFont.systemFont(ofSize: 14.0))
chartData.setValueTextColor(UIColor.white)

如果要在欄中顯示標簽,則將BarChartView對象屬性drawValueAboveBarEnabled為false。 它將在條形圖中顯示您的標簽。

barChartView.drawValueAboveBarEnabled = false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM