2016-07-29 49 views
1

我在快速使用CHARTS库。 https://github.com/danielgindi/Charts多种颜色的条形图Swift一个在另一个上面

我在创建饼图和条形图时得到了好处。 现在我想创建一个“x”值和2“y”值的条形图。

我用两个不同的值创建了条形图。 但我无法为它们设置颜色 我将颜色数组传递给委托方法setColors,但它取得了数组中的最后一种颜色。

任何人都可以引导我在条形图上有不同的颜色。

这里是我的代码来调用BARCHART库

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) 

这是方法调用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) 
    } 

我想是这样的

enter image description here

提前致谢。

+0

你如何管理中心的每个栏上的标签? –

回答

2

这是一个堆积条形图。在图表的演示中,您可以看到堆积的条形图。

基本上,每个BarChartDataEntry收到一个值或一个值的数组。传递一系列价值观 - 你很好去!

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

相关问题