【问题标题】:Multiple colours to Bar Charts Swift one above the other多种颜色到条形图 Swift 一种在另一种之上
【发布时间】:2016-12-04 03:30:58
【问题描述】:

我正在快速使用 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)
    }

我想要的是这样的

提前致谢。

【问题讨论】:

  • 你是如何设法将每个条上的标签居中的?
  • @JojoNarte 我也有同样的问题?如果您已解决,请告诉我。
  • @JojoNarte :-嗨,请在下面找到答案,这有助于我解决问题。你也可以在这里通过 gitHub 找到答案。 github.com/danielgindi/Charts/issues/1324
  • @Sagar 该链接实际上并没有显示这些值是如何居中的。 :(

标签: ios arrays swift xcode charts


【解决方案1】:

这是一个堆积条形图。在 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

【讨论】:

  • 感谢您的解决方案,它有效。抱歉回复晚了,因为我正在动态管理 Values 的数组并取得了成功。感谢您的帮助@daniel.gindi
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 2013-03-26
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多