2016-08-18 4 views
0

これは基本的な質問である場合は非常に申し訳ありません。私は、次のコードを使用して棒グラフを設定するためにダニエルGindi(自分のGithub上の最新版)でのiOS・チャートを使用しています:iOS-Charts(Xcode 7.3.1)でX軸とY軸を設定するときにエラーが発生する

import UIKit 
    import Charts 

    class BarChartViewController: UIViewController { 

     var barChartView: BarChartView! 
     var days: [String]! 

     override func viewDidLoad() { 
      super.viewDidLoad() 

      days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 
      let tasks = [1.0, 1.0, 1.5, 2.0, 3.0, 5.0, 0.0] 

      setChart(days, values: tasks) 
     } 

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

      barChartView.noDataText = "You need to provide data for the chart." 

      var dataEntries: [BarChartDataEntry] = Array() 
      var counter = 0.0 

      for i in 0..<dataPoints.count { 
       counter += 1.0 
       let dataEntry = BarChartDataEntry(x: values[i], y: counter) 
       dataEntries.append(dataEntry) 
      } 

      let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Time") 
      let chartData = BarChartData(xVals: days, dataSet: chartDataSet) 
      barChartView.data = chartData 
     } 
    } 

これは、FUNCのsetChartにエラーが求められます。

let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Time") 

コールの引数が正しくありません(yVals、期待値)。あなたが値にyValsを変更した場合でも、それは次の行でエラーが求められます。

let chartData = BarChartData(xVals: days, dataSet: chartDataSet) 

エラーは次のとおりです。[文字列]:(xVals」タイプの引数リストに型「BarChartData」の初期化子を呼び出すことはできません! 、dataSet:BarChartDataSet) '

私はChartsDemoを見ましたが、私が正確に何を探しているのか分かりません。デモを作成しようとするとコンパイルエラーが発生しているようです。

誰かがこれで私を助けることができますか?

答えて

2

この

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

    barChartView.noDataText = "You need to provide data for the chart." 

    var dataEntries: [BarChartDataEntry] = Array() 
    var counter = 0.0 

    for i in 0..<dataPoints.count { 
     counter += 1.0 
     let dataEntry = BarChartDataEntry(x: values[i], y: counter) 
     dataEntries.append(dataEntry) 
    } 

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "Time") 
    let chartData = BarChartData() 
    chartData.addDataSet(chartDataSet) 
    barChartView.data = chartData 

} 
+0

あなたは私が働いていたが、私のコードの他の部分は次のエラーを与えている与えたコード: 「スレッド1:EXC_BAD_INSTRUCTION(コード= EXC_1386_INVOP、サブコード= 0x0の)」私はピンに見えることはできません その下に、表示されます: 「barChartView.noDataText = 『あなたは、チャートにデータを提供する必要があります。』」 と 「barChartView.data = chartData」 あなたはこれで私を助けてもらえますか? – ghcjuba

+0

私はこのコードをMacに縛っていますが、それは完璧に機能します。https://gist.github.com/chaithanyaprathyush/5c4f25928460bb8086e11138b7fe7c57 –

+0

"barChartView.noDataText ="グラフのデータを提供する必要があるところで、問題はまだ解決しています。 "と" barChartView.data = chartData "はエラー" EXC_BAD_INSTRUCTION " - >"致命的なエラー:オプション値をアンラッピングしている間に予期せず見つからない "を出しています。チュートリアルプロジェクト(https://www.dropbox.com/s/9ehz8ca5g4npoc2/iOSChartsDemoStarter.zip?dl=0)で作成したコードを実行しました... mimeはiOS用で、あなたのものはフォーマットのためですOSXのために? https://github.com/ghcjuba/barChartExampleにテストコードをアップロードしました...引き続き問題をおかけして申し訳ありません。ご協力いただきありがとうございます。 – ghcjuba

0

この

let chartDataSet = BarChartDataSet(values: dataEntries, label: "Units Sold") 
 
     let chartData = BarChartData() 
 
     chartData.addDataSet(chartDataSet) 
 
     
 
     barChart.animate(xAxisDuration: 2.0, yAxisDuration: 2.0) 
 
     chartDataSet.colors = ChartColorTemplates.colorful() 
 
     barChart.data = chartData

完全なコード

// 
 
// ChartViewController.swift 
 
// OEE 
 
// 
 
// Created by Andrew on 07.03.2018. 
 
// Copyright © 2018 Andrew. All rights reserved. 
 
// 
 

 
import UIKit 
 
import Foundation 
 
import Charts 
 

 
class ChartViewController: UIViewController, IAxisValueFormatter, ChartViewDelegate { 
 
    
 
    func stringForValue(_ value: Double, axis: AxisBase?) -> String { 
 
     return months[Int(value)] 
 
    } 
 
    
 
    
 
    @IBOutlet weak var barChart: BarChartView! 
 
    
 
    var months: [String]! 
 
    
 
    override func viewDidLoad() { 
 
     super.viewDidLoad() 
 

 
     months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] 
 
     let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0] 
 
     
 
     //setChart(months, values: unitsSold) missing argument label dataPoints: in call 
 
     setChart(dataPoints: months, values: unitsSold) 
 
    } 
 
    
 
    func setChart(dataPoints: [String], values: [Double]) { 
 
     barChart.noDataText = "You need to provide data for the chart." 
 
     var dataEntries: [BarChartDataEntry] = [] 
 
     var counter = 0.0 
 
     
 
     for i in 0..<dataPoints.count { 
 
      counter += 1.0 
 
      let dataEntry = BarChartDataEntry(x: values[i], y: counter) 
 
      dataEntries.append(dataEntry) 
 
     } 
 
     
 
     let chartDataSet = BarChartDataSet(values: dataEntries, label: "Units Sold") 
 
     let chartData = BarChartData() 
 
     chartData.addDataSet(chartDataSet) 
 
     
 
     barChart.animate(xAxisDuration: 2.0, yAxisDuration: 2.0) 
 
     chartDataSet.colors = ChartColorTemplates.colorful() 
 
     barChart.data = chartData 
 
     //barChart.xAxis.ent 
 
     barChart.xAxis.valueFormatter = IndexAxisValueFormatter(values: months) 
 
     barChart.xAxis.labelCount = months.count 
 
     barChart.xAxis.labelPosition = .bottom 
 

 
    
 
} 
 
}
を試してみ

+1

このコードは質問に答えるかもしれませんが、なぜこのコードが質問に答えるか、および/またはどのようにして追加の文脈を提供すると、長期的な価値が向上します。 –

関連する問題