2017-03-05 7 views
4

このコードで折れ線グラフを作成しようとしています。私は別のものを試して何時間も使っていたコードの大部分をレイアウトしました。クラスで :迅速な折れ線グラフ3

PendingViewController: UIViewController, ChartViewDelegate 

アウトレット:

@IBOutlet weak var lineChartView: LineChartView! 

ViewDidLoad: 
    let months = ["Jan" , "Feb", "Mar", "Apr", "May", "June", "July", "August", "Sept", "Oct", "Nov", "Dec"] 
    let dollars1 = [1453.0,2352,5431,1442,5451,6486,1173,5678,9234,1345,9411,2212] 
    self.lineChartView.delegate = self 
    // 2 
    self.lineChartView.descriptionText = "Tap node for details" 
    // 3 
    self.lineChartView.chartDescription?.textColor = UIColor.white 
    self.lineChartView.gridBackgroundColor = UIColor.darkGray 
    // 4 
    self.lineChartView.noDataText = "No data provided" 
    // 5 
    setChartData(months: months) 

のFunc:

func setChartData(months : [String]) { 

    // 1 - creating an array of data entries 
    var yVals1 : [ChartDataEntry] = [ChartDataEntry]() 
    for i in 0 ..< months.count { 
     yVals1.append(ChartDataEntry(x: dollars1[i], y: Double(i))) 
    } 

    // 2 - create a data set with our array 
    let set1: LineChartDataSet = LineChartDataSet(values: yVals1, label: "First Set") 
    set1.axisDependency = .left // Line will correlate with left axis values 
    set1.setColor(UIColor.red.withAlphaComponent(0.5)) // our line's opacity is 50% 
    set1.setCircleColor(UIColor.red) // our circle will be dark red 
    set1.lineWidth = 2.0 
    set1.circleRadius = 6.0 // the radius of the node circle 
    set1.fillAlpha = 65/255.0 
    set1.fillColor = UIColor.red 
    set1.highlightColor = UIColor.white 
    set1.drawCircleHoleEnabled = true 

    //3 - create an array to store our LineChartDataSets 
    var dataSets : [LineChartDataSet] = [LineChartDataSet]() 
    dataSets.append(set1) 

    //4 - pass our months in for our x-axis label value along with our dataSets 
    let data: LineChartData = LineChartData(xVals: months, dataSets: dataSets) 
    data.setValueTextColor(UIColor.white) 

    //5 - finally set our data 
    self.lineChartView.data = data 


} 

このエラーを受けたイム:

Cannot invoke initializer for typel 'LineChartData' with an argument list of type '(xVals: [String], dataSets: [LineChartDataSet])' 

は、

0123をありがとうございました

デニス

+0

誰かが私を助けることはできますか? – Denis

+0

ライブラリのリンクを追加できますか? –

+0

ポッド 'チャート'?それはあなたが意味することですか? – Denis

答えて

0

どのように過負荷を把握し、いつも使用しています。 xCodeの "Find Navigator"では "class LineChartData"を検索できます。次に、 "LineChartData"クラスが定義されているポッド内のコードを調べて、そのinitメソッドの引数を確認できます。とにかく、私は信じている答えは、この上のベースは、あなたが言う行を変更することです:

let data: LineChartData = LineChartData(xVals: months, dataSets: dataSets) 

これは、利用可能な過負荷に一致しTHIS

let data: LineChartData = LineChartData(dataSets: dataSets) 

に。あなたのために遅すぎる場合は、上記は他の人を助けるかもしれません。

+0

この質問で私を助けることができますか? http://stackoverflow.com/questions/42958478/line-graph-model-swift-3 – Denis

+0

私は仕事を見ていきます。 –

3

作業するコードスニペット:(スウィフト3.0および3.0チャート)

fileprivate func setChart(_ lineChartView: LineChartView, dataPoints: [Double], values: [Double]) {  
    var dataEntries: [ChartDataEntry] = [] 

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

    let lineChartDataSet = LineChartDataSet(values: dataEntries, label: "Altitude") 
    lineChartDataSet.setColor(UIColor.blue) 
    // lineChartDataSet.drawCubicEnabled = true 
    lineChartDataSet.mode = .cubicBezier 
    lineChartDataSet.drawCirclesEnabled = false 
    lineChartDataSet.lineWidth = 1.0 
    lineChartDataSet.circleRadius = 5.0 
    lineChartDataSet.highlightColor = UIColor.red 
    lineChartDataSet.drawHorizontalHighlightIndicatorEnabled = true 

    var dataSets = [IChartDataSet]() 
    dataSets.append(lineChartDataSet) 

    let lineChartData = LineChartData(dataSets: dataSets) 

    lineChartView.data = lineChartData 
} 
+0

ありがとう、バーチャートのスニペットもありますか? – user3804063