2016-11-07 18 views
0

2つのデータセットchartDataSetとlimitDataSetを作成しました。BarCharts IOSチャートで複数のデータセットを作成する方法

var dataEntries = [BarChartDataEntry]() 
    var limitEntries = [BarChartDataEntry]() 

    for i in 0..<daily[index].count { 
     let dataEntry = BarChartDataEntry(value: values[index][i], xIndex: i) 
     let limitEntry = BarChartDataEntry(value: limitValues[index][i], xIndex: i) 
     dataEntries.append(dataEntry) 
     limitEntries.append(limitEntry) 
    } 

    let chartDataSet = BarChartDataSet(yVals: dataEntries, label: label) 
    chartDataSet.colors = [UIColor(red: 108/255, green: 189/255, blue: 146/255, alpha: 1)] 
    let limitDataSet = BarChartDataSet(yVals: limitEntries, label: "Limit in mg") 
    limitDataSet.colors = [UIColor(red: 219/255, green: 70/255, blue: 70/255, alpha: 1)] 

    var dataSets = [BarChartDataSet]() 
    dataSets.append(chartDataSet) 
    dataSets.append(limitDataSet) 

    //this line does has error 
    let chartData = BarChartData(xVals: daily[index], dataSet: dataSets) 

    monthlyChart.data = chartData 

私の棒グラフにデータセットを追加する必要がありますが、私が使用したコードは単一のデータセットに対してのみ機能します。

これは私のプロジェクトで使用していたチャートです。 https://github.com/danielgindi/Charts

+0

どのエラーが発生していますか? 「毎日」の種類は何ですか? – alexburtnik

+0

エラーがある行で間違った引数を使用していたと報告しています。 dailyは文字列型で、x値のラベルとして機能します。 –

答えて

1

BarChartに2つのデータセットを追加していません。

しかし、私はPieChartでこれを行っています。

希望すると、これが役立ちます。

import UIKit 

class ViewController: UIViewController { 


     @IBOutlet weak var pieChartView: PieChartView! 
     override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"] 
     let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0] 

     setChart(months, values: unitsSold) 

     setChart2(months, values: unitsSold) 


    } 


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

     var dataEntries: [ChartDataEntry] = [] 

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

     let pieChartDataSet = PieChartDataSet(yVals: dataEntries, label: "Units Sold") 

     let formatter = NSNumberFormatter() 
     formatter.numberStyle = .PercentStyle 
     formatter.maximumFractionDigits = 1 
     formatter.multiplier = 1.0 


     let pieChartData = PieChartData(xVals: dataPoints, dataSet: pieChartDataSet) 

     pieChartData.dataSet?.valueFormatter = formatter 


     pieChartView.data = pieChartData 

     pieChartView.holeColor = UIColor.clearColor() 

     pieChartView.holeRadiusPercent = 0.95 

     pieChartView.centerText = "Hello\nThis is Pie chart" 

pieChartView.usePercentValuesEnabled = true 


     var colors: [UIColor] = [] 

     for i in 0..<dataPoints.count { 
      let red = Double(arc4random_uniform(255)) 
      let green = Double(arc4random_uniform(255)) 
      let blue = Double(arc4random_uniform(255)) 

      let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1) 
      colors.append(color) 
     } 

     pieChartDataSet.colors = colors 




    } 

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

     var dataEntries: [ChartDataEntry] = [] 

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

     let pieChartDataSet = PieChartDataSet(yVals: dataEntries, label: "Units Sold") 

     let formatter = NSNumberFormatter() 
     formatter.numberStyle = .PercentStyle 
     formatter.maximumFractionDigits = 1 
     formatter.multiplier = 1.0 


     let pieChartData = PieChartData(xVals: dataPoints, dataSet: pieChartDataSet) 

     pieChartData.dataSet?.valueFormatter = formatter 


     pieChartView.data = pieChartData 

     pieChartView.holeColor = UIColor.clearColor() 

     pieChartView.holeRadiusPercent = 0.95 

     pieChartView.centerText = "Hello\nThis is Pie chart" 

     pieChartView.usePercentValuesEnabled = true 


     var colors: [UIColor] = [] 

     for i in 0..<dataPoints.count { 
      let red = Double(arc4random_uniform(255)) 
      let green = Double(arc4random_uniform(255)) 
      let blue = Double(arc4random_uniform(255)) 

      let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1) 
      colors.append(color) 
     } 

     pieChartDataSet.colors = colors 




    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

幸せなコーディング。

関連する問題