条形图的多种颜色Swift一个在另一个之上

时间:2016-07-29 12:04:37

标签: ios arrays swift xcode charts

我在swift中使用CHARTS库。 https://github.com/danielgindi/Charts

我在制作饼图和条形图方面表现得很好。 现在我想创建一个带有“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 个答案:

没有答案