2016-07-29 10 views
1

私は迅速にCHARTSライブラリを使用しています。 https://github.com/danielgindi/Charts棒グラフの複数の色スウィフトの上に1つずつ

私は円チャートと棒グラフの作成にsuceessを得ました。 ここでは、1つの "x"値と2 "y"値を持つ棒グラフを作成したいと考えています。

2つの異なる値で棒グラフを作成しました。 しかし、私はそれらの色を設定することができません メソッドsetColorsを委譲するためにカラー配列を渡しましたが、配列から最後の色を取ります。

棒グラフで色分けしてもらえますか?ここで

私のコードは

months = ["HR","Operations","iOS","Android","PHP","Support","Testing","Designer"] 
     let unitsSold = [10.0,20.0,30.0,20.0,20.0,10.0,15.0,20.0] 
     let unitsSold1 = [20.0,30.0,50.0,40.0,30.0,20.0,45.0,50.0] 

     let barChartClass = self.storyboard!.instantiateViewControllerWithIdentifier("BarChartViewControllerID") as! BarChartViewController 
     self.addChildViewController(barChartClass) 
     barChartClass.view.frame = CGRectMake(20, 20, 740, 900) 
     barChartClass.barChartView.doubleTapToZoomEnabled = false 
     barChartClass.barChartView.setScaleEnabled(false) 
     self.view.addSubview(barChartClass.view) 
     barChartClass.barChartView.legend.enabled = false 

     barChartClass.setChartBarGroupDataSet(months, values: unitsSold, values2: unitsSold1, sortIndex: 0) 

BarChartコントロールライブラリを呼び出すと、これは私がしたいことは、この

enter image description here

のようなものであるsetChartBarGroupDataSet

func setChartBarGroupDataSet(dataPoints: [String], values: [Double], values2: [Double],sortIndex:Int) 
    { 

     var dataEntries: [BarChartDataEntry] = [] 

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

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

     let COLOR_SET : [UIColor]! 
     COLOR_SET = [UIColor.redColor(),UIColor.greenColor()] 

     chartDataSet.setColors(COLOR_SET, alpha: 1.0) 

     let dataSets: [BarChartDataSet] = [chartDataSet] 

     let data = BarChartData(xVals: dataPoints, dataSets: dataSets) 

     barChartView.data = data 

     barChartView.descriptionText = "" 

     barChartView.rightAxis.drawGridLinesEnabled = false 
     barChartView.rightAxis.drawAxisLineEnabled = false 
     barChartView.rightAxis.drawLabelsEnabled = false 

     barChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .EaseInBounce) 
    } 

ためのメソッド呼び出しであることです前もって感謝します。

+0

どのようにあなたが各バーのラベルを中心に管理するのですか? –

答えて

2

これは積み重ね棒グラフです。 Chartsのデモでは、積み上げ棒グラフを見ることができます。

基本的に、それぞれBarChartDataEntryは、1つの値または値の配列のいずれかを受け取りました。値の配列を渡す - あなたは行き​​たい!

let entry = BarChartDataEntry(values: [4.6, 3.8], xIndex: 0) dataset.colors = [UIColor.cyanColor(), UIColor.greenColor()] dataset.stackLabels = ["Inactive inventory", "Active inventory"]

も重複の問題に答えhttps://github.com/danielgindi/Charts/issues/1324

+0

ソリューションをありがとう、それは動作します。私は値の配列を動的に管理していて、成功したので、遅れて返事を申し訳ありません。助けてくれてありがとう@ daniel.gindi – Sagar

関連する問題