Линейная диаграмма с дополнительным параметром Y swift

#ios #swift #ios-charts #swiftcharts

#iOS #swift #ios-диаграммы #swiftcharts

Вопрос:

Требуется линейная диаграмма, в которой допускается y значение as nil . Поскольку, когда нет данных за этот конкретный день ( x ), строка должна просто идти вперед.

В настоящее время я исследовал SwiftChart amp; Charts, но оба не предоставляют такой функциональности.

Пожалуйста, обратитесь к изображению ниже для более глубокого понимания.

введите описание изображения здесь

Как вы можете видеть в воскресенье, понедельник и среду, есть данные, Во вторник данных нет, поэтому строка просто продолжается с понедельника по среду.

Как я могу этого добиться или есть ли какая-либо библиотека, которая может помочь мне в этом.

Комментарии:

1. «строка должна просто идти вперед», разве это не то, что она делает на изображении?

2. Я использую github.com/danielgindi/Charts , если я пропущу какое-то значение X, оно будет показано так, это зависит от вашего значения данных

3. @aiwiguna Я думаю, что если вы пропустите x, т.Е. в моем случае Вторник, то он не будет отображаться на оси x. Если я неправильно понял, что вы сказали, не могли бы вы показать в коде?

4. @JoakimDanielson Да, изображение — это то, что я получил от дизайнера, в фактическом результате значение Y достигает нуля во вторник.

Ответ №1:

Вы можете просто пропустить некоторое значение X в https://github.com/danielgindi/Charts

введите описание изображения здесь

 private func setupChart() {
        let leftAxis = chart.leftAxis
        leftAxis.axisMinimum = 0
        leftAxis.axisMaximum = 100
        leftAxis.granularity = 10
        
        let rightAxis = chart.rightAxis
        rightAxis.enabled = false
        
        let xAxis = chart.xAxis
        xAxis.axisMinimum = 0
        xAxis.axisMaximum = 7
        xAxis.labelPosition = .bottom
        xAxis.granularity = 1
        
    }
    
    private func setupChartData() {
        var dataEntries: [ChartDataEntry] = []
        for i in 0...7 {
            if i % 2 == 0 {
                let value = arc4random_uniform(100)   1
                if value != 0 {
                    let dataEntry = ChartDataEntry(x: Double(i), y: Double(value))
                    dataEntries.append(dataEntry)
                }
            }
        }
        let dataSet = LineChartDataSet(entries: dataEntries, label: "")
        let data = LineChartData(dataSet: dataSet)
        chart.data = data
    }