【问题标题】:iOS-Charts grouped bar chart with size to fitiOS-Charts 分组条形图,大小适合
【发布时间】:2017-10-07 15:42:27
【问题描述】:

我最近在我的条形图中添加了“barChartData.groupBars(fromX: 0, groupSpace: 0.5, barSpace: 0.03)”,这样我就没有重叠的条形,而且我不知道如何设置宽度适合(无水平溢出)

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
}

【问题讨论】:

  • 嗨,罗伯特,您使用的是哪个库?我正在尝试实现类似的东西。谢谢。

标签: ios swift charts draw ios-charts


【解决方案1】:

你可以这样使用:

您的计算将如下所示:

// (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

【讨论】:

  • 感谢您的回答。我认为我的方向是正确的。看看我的截图。我应该从 0(左边缘)开始有 12 个组(而不是 6 个)。 imgur.com/ijNazSU
  • 我实际上设法调整了这个值,直到它起作用。真的很奇怪...imgur.com/a/bdyaI barChartData.groupBars(fromX: -0.5, groupSpace: 0.13, barSpace: -0.415) barChartData.barWidth = 0.41
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多