swift - Swift 中带有图表的堆积条形图

标签 swift charts ios-charts

我正在尝试在我的 iOS 项目中使用图表框架 (Swift) 构建堆叠条形图。我现在所能构建的只是一个分组条形图。有人知道怎么做吗?

我找到的是:Convert bar chart to a grouped bar chart with danielgindi/ios-charts and Swift

这是我的代码:

@IBOutlet var barChartView: BarChartView!
var receivedDate1 : String = ""
var receivedDate2 : String = ""
var receivedDate3 : String = ""
var receivedDate4 : String = ""
var receivedDate5 : String = ""

var months: [String]!

override func viewDidLoad() {
    super.viewDidLoad()

    months = [receivedDate1, receivedDate2, receivedDate3, receivedDate4, receivedDate5]
    let dominanz1 = [1.0, 2.0, 3.0, 4.0, 5.0]
    let dominanz2 = [5.0, 4.0, 3.0, 2.0, 1.0]

    setChartBarGroupDataSet(months, values: dominanz1, values2: dominanz2, sortIndex: 1)

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func setChartBarGroupDataSet(dataPoints: [String], values: [Double], values2: [Double],sortIndex:Int) {

    var dataEntries: [BarChartDataEntry] = []
    var dataEntries2: [BarChartDataEntry] = []


    for i in 0..<dataPoints.count {

        let dataEntry = BarChartDataEntry(value: values[i], xIndex: i)
        dataEntries.append(dataEntry)
    }


    for i in 0..<dataPoints.count {

        let dataEntry = BarChartDataEntry(value: values2[i], xIndex: i)
        dataEntries2.append(dataEntry)
    }


    let chartDataSet = BarChartDataSet(yVals: dataEntries, label: " ")
    let chartDataSet2 = BarChartDataSet(yVals: dataEntries2, label: " ")

    chartDataSet2.colors =  [UIColor(red: 255/255, green: 70/255, blue: 108/255, alpha: 1)]

    chartDataSet.colors =  [UIColor(red: 49/255, green: 27/255, blue: 146/255, alpha: 1)]


    let dataSets: [BarChartDataSet] = [chartDataSet,chartDataSet2]

    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)


}

我使用的框架是 cocoapods 的 Charts 2.2.4。 这是它目前的样子:grouped bar chart 它应该是这样的:stacked bar chart

最佳答案

用 yAxis 中的两个值准备 BarchartDataEntry,例如

let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]

let unitsBought = [10.0, 14.0, 60.0, 13.0, 2.0, 1.0, 5.0, 1.0, 12.0, 14.0, 15.0, 14.0]

let dataEntry = BarChartDataEntry(x: Double(i), yValues:  [self.unitsSold[i],self.unitsBought[i]], label: "groupChart")


 var dataEntries: [BarChartDataEntry] = []
 for i in 0..<self.months.count {
            let dataEntry = BarChartDataEntry(x: Double(i) , y: self.unitsSold[i])
            dataEntries.append(dataEntry)
}

关于swift - Swift 中带有图表的堆积条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36527308/

相关文章:

angularjs - 如何构建这个圆形的两色调 donut chart ?

ios - X 轴 Action 奇怪 - iOS 图表

ios - 自定义导航 Controller 以显示固定顶部菜单

ios - 快速从对象数组检索数据时出错

JavaScript 错误 - 未捕获的语法错误 : Unexpected number

ios - 在 iOS 的条形图中显示整数值标签

ios - 如何使用 ios 图表从自定义方法中突出显示条形图中的条形图?

swift - 如何获取图像上给定点(x,y)的灰度像素值?

ios - UIKeyboardWillHideNotification 动画延迟

javascript - Nivo 条形图轴标签重叠