iOS Графики Бар-Бар Комбинированные Графики - PullRequest
0 голосов
/ 11 февраля 2020

Я использую библиотеку iOS графиков и пытаюсь создать комбинированный график бар-бар.

Я не уверен, что это возможно, но я не увидел никаких ограничений относительно документации, поэтому я предполагаю, что есть такая опция.

Это код, который я использую для добавления комбинированной диаграммы:

func createIntegratedChartForStat(stat:String, chart:CombinedChartView){
    chart.noDataText = "You need to provide data for the " + stat + " chart"

    var dataEntriesTotal: [BarChartDataEntry] = []
    var dataEntriesGood: [BarChartDataEntry] = []
    for i in 0..<gamesOrder.count {
        let outFromStat = playersFullData["b"]![stat]![i]
        var splittedData = outFromStat.split(separator: "/")
        let dataEntryTotal = BarChartDataEntry(x: Double(i), y: Double(splittedData[0])!)
        let dataEntryGood = BarChartDataEntry(x: Double(i), y: Double(splittedData[1])!)
        dataEntriesTotal.append(dataEntryTotal)
        dataEntriesGood.append(dataEntryGood)
    }

    let chartDataSetTotal = BarChartDataSet(values: dataEntriesTotal, label: stat + " Attempts")
    let chartDataSetGood = BarChartDataSet(values: dataEntriesGood, label: stat + " Successful")

    let chartData = CombinedChartData(dataSets: [chartDataSetTotal, chartDataSetGood])

    chart.data = chartData
}

Все, что я получаю, это :

enter image description here

И следующая ошибка при касании диаграммы:

[Неизвестное имя процесса] CGAffineTransformInvert: единичная матрица .

Можно ли это сделать или я что-то упустил?

1 Ответ

0 голосов
/ 11 февраля 2020

Возможно, я просто неверно добавил данные в комбинированный график. Добавление обновленного кода:

func createIntegratedChartForStat(stat:String, chart:CombinedChartView){
    chart.noDataText = "You need to provide data for the " + stat + " chart"

    var dataEntriesTotal: [BarChartDataEntry] = []
    var dataEntriesGood: [BarChartDataEntry] = []
    for i in 0..<gamesOrder.count {
        let outFromStat = playersFullData["b"]![stat]![i]
        var splittedData = outFromStat.split(separator: "/")
        let dataEntryTotal = BarChartDataEntry(x: Double(i), y: Double(splittedData[0])!)
        let dataEntryGood = BarChartDataEntry(x: Double(i), y: Double(splittedData[1])!)
        dataEntriesTotal.append(dataEntryTotal)
        dataEntriesGood.append(dataEntryGood)
    }

    let chartDataSetTotal = BarChartDataSet(values: dataEntriesTotal, label: stat + " Attempts")
    chartDataSetTotal.colors = [NSUIColor .blue]
    let chartDataSetGood = BarChartDataSet(values: dataEntriesGood, label: stat + " Successful")
    chartDataSetGood.colors = [NSUIColor .green]

    let chartData = BarChartData(dataSets: [chartDataSetTotal, chartDataSetGood])

    let data: CombinedChartData = CombinedChartData()
    data.barData = chartData
    chart.data = data
}
...