2017-01-05 21 views
2

私はiOSチャートの非常に簡単なチュートリアルに従っています。iOS Chartで下軸(xVals)にラベルを正しく表示するにはどうすればよいですか?

マイチャートの値は正しく表示されていますが、下部のラベルは表示されません。

override func viewDidLoad() { 

    results = ["Won", "Drawn", "Lost"] 
    let games = [totalWins, totalDraws, totalLosses] 
    setChart(dataPoints: results, values: games) 

    } 

    // CHART FUNCTION ************ 

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

    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) 
    } 


    let chartDataSet = BarChartDataSet(values: dataEntries, label: "Games Played") 

    //let chartData = BarChartData(xVals: self.results, dataSet: dataEntries) 
    let chartData = BarChartData() 
    self.barChartView.xAxis.labelPosition = XAxis.LabelPosition.bottom 
    barChartView.leftAxis.granularityEnabled = true 
    barChartView.rightAxis.enabled = false 
    barChartView.leftAxis.granularity = 1.0 
    chartData.addDataSet(chartDataSet) 
    barChartView.data = chartData 

} 

// END OF CHART FUNCTION *********** 

あなたがではなく、それは数字を表示して見ることができるように「描かれた、ウォン、失われた」

enter image description here

私は、このようなコマンドにラベルを割り当てる必要があるため、これがあると信じて:

let chartData = BarChartData(xVals: self.results, dataSet: dataSet) 
chartView.data = chartData 

しかし、私はエラーを取得し、私は別のスレッドからその解決策を取り、仕事にそれを修正することができないようとして、データセット内の行く必要かわかりません。

TEMPイメージ:

enter image description here

答えて

1

あなたはインターチェンジxとyの値を持っています。

let dataEntry = BarChartDataEntry(x: Double(i), y: values[i]) 

また、X軸を最下部に表示するには、次のものを追加する必要があります。

self.barChartView.xAxis.labelPosition = XAxis.LabelPosition.bottom 

サンプルデータセットのための私の作業コードを見つけてください。

class BarChartViewController: UIViewController { 
    @IBOutlet weak var barChartView: BarChartView! 
     override func viewDidLoad() { 
     super.viewDidLoad() 
     let values = [11.00, 90.95, 250.00, 40.90, 60.88, 99.99, 25.00] 
     setChart(values: values) 
    } 

    func setChart(values: [Double]) { 
     var daysEntries: [BarChartDataEntry] = [] 

     for i in 0..<values.count { 
      let dataEntry = BarChartDataEntry(x : Double(i), y : values[i]) 
      daysEntries.append(dataEntry) 
     } 

     let data = BarChartData() 

     let ds1 = BarChartDataSet(values: daysEntries, label: "Days") 
     ds1.colors = [NSUIColor.red] 

     data.addDataSet(ds1) 

     self.barChartView.data = data 
     self.barChartView.gridBackgroundColor = NSUIColor.white 
     self.barChartView.chartDescription?.text = "Barchart Days and Gross" 
     self.barChartView.rightAxis.enabled = true 
     self.barChartView.xAxis.labelPosition = XAxis.LabelPosition.bottom 
     self.barChartView.xAxis.axisRange = 5.0 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     self.barChartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0) 
    } 
} 

おかげ スリラム

+0

チャートにデータ値を修正したおかげスリラムを、 - 私のラベルが、まだ表示されていません。私は今私が持っているもので質問を更新しました。 – RDowns

+0

こんにちはRDowns、私はシナリオをカバーする作業コードで私の応答を更新しました。 – Sri

+0

ありがとうございます、私はあなたのコードでエラーが発生しました: "行のパラメータ 'dataPoints'呼び出しの引数がありません:setChart(values:values) – RDowns

0

私は同じ問題を持っていたと私は、これらの3つのラインでそれを固定:

self.xAxis.granularity = 1 
self.xAxis.granularityEnabled = true 
self.xAxis.labelCount = // number of points on X axis 
関連する問題