2016-07-29 2 views
1

Я использую библиотеку CHARTS в swift. 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

Это сложная гистограмма. В демограммах Charts вы можете увидеть сложную гистограмму.

В принципе, каждый 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

Смежные вопросы