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

标签 ios arrays swift xcode charts

我正在快速使用 CHARTS 库。 https://github.com/danielgindi/Charts

我在创建饼图和条形图方面取得了成功。 现在我想创建具有一个“x”值和 2 个“y”值的条形图。

我用两个不同的值创建了条形图。 但我无法为它们设置颜色 我将颜色数组传递给委托(delegate)方法 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

提前致谢。

最佳答案

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

基本上,每个 BarChartDataEntry 都会收到一个值或一组值。传递一组值 - 一切顺利!

让条目 = BarChartDataEntry(值:[4.6,3.8],xIndex:0) dataset.colors = [UIColor.cyanColor(), UIColor.greenColor()] dataset.stackLabels = ["非活跃库存", "活跃库存"]

也在重复问题中回答:https://github.com/danielgindi/Charts/issues/1324

关于ios - 条形图 Swift 的多种颜色一个在另一个之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658402/

相关文章:

ios - 隐藏 UIView 时屏幕自动调整大小

c - 在 C 中对重复行进行排序

java - 如何使用简单的 JSON 库基于索引获取整个 JSON 数组

javascript - 使用 html 中的 ids 定义 JavaScript 数组

swift - 为 NSNotificationCenter = Swift deinit() 调用 .removeObserver 的正确位置?

android - Ionic 2 侧边菜单在按下数次后不起作用

objective-c - CGPDFScannerScan 不触发回调函数

swift 代码 : Is there a way to make the alert view disappear automatically

ios - CollectionView 作为 Swift 中的 subview

Swift Toast 消息未显示 "UIApplication.sharedApplication().windows"