iOS-Charts将条形图分组,尺寸适合

时间:2017-10-07 15:42:27

标签: ios swift charts draw ios-charts

我最近添加了" barChartData.groupBars(fromX:0,groupSpace:0.5,barSpace:0.03)"到我的条形图,这样我就不会有重叠条,我无法弄清楚如何设置宽度以适应(没有水平溢出)

enter image description here

func setupGroupedBarChartData(values1: [String], values2: [String], barLabel1: String, barLabel2: String, barColor1: UIColor, barColor2: UIColor) -> BarChartData {
    let dataValues1 = values1.flatMap{ Double($0) }
    let dataValues2 = values2.flatMap{ Double($0) }

    var dataEntries1: [BarChartDataEntry] = []
    var dataEntries2: [BarChartDataEntry] = []

    for i in 0..<dataValues1.count {
        let dataEntry1 = BarChartDataEntry(x: Double(i), y: dataValues1[i])
        dataEntries1.append(dataEntry1)

        let dataEntry2 = BarChartDataEntry(x: Double(i), y: dataValues2[i])
        dataEntries2.append(dataEntry2)
    }

    let chartDataSet1 = BarChartDataSet(values: dataEntries1, label: barLabel1)
    chartDataSet1.colors = [barColor1]
    chartDataSet1.valueTextColor = AppColors.lightText
    let chartDataSet2 = BarChartDataSet(values: dataEntries2, label: barLabel2)
    chartDataSet2.colors = [barColor2]
    chartDataSet2.valueTextColor = AppColors.lightText

    var groupedDataSet : [BarChartDataSet] = [BarChartDataSet]()
    groupedDataSet.append(chartDataSet1)
    groupedDataSet.append(chartDataSet2)

    let barChartData = BarChartData(dataSets: groupedDataSet)
    barChartData.groupBars(fromX: 0, groupSpace: 0.5, barSpace: 0.03)

    //display data as integer
    let format = NumberFormatter()
    format.generatesDecimalNumbers = false
    let formatter = DefaultValueFormatter(formatter: format)
    barChartData.setValueFormatter(formatter)


    return barChartData
}

1 个答案:

答案 0 :(得分:2)

您可以这样使用:

您的计算如下:

// (barWidth + barSpace) * (no.of.bars) + groupSpace = 1.00 -> interval per "group"

在您的代码中:

barChartData.groupBars(fromX: 0, groupSpace: 0.14, barSpace: 0.03)
barChartData.barWidth = 0.4

barChartView.xAxis.axisMinimum = 0
barChartView.xAxis.axisMaximum = 23