Как сделать так, чтобы ось Y не начиналась с нуля?

Я знаю, что есть chart.leftAxis.startAtZeroEnabled = false вариант, но он не работает для меня.

Я делаю линейный график для отслеживания подписчиков Instagram с течением времени, и у меня есть точки данных, которые очень мало меняются, поэтому мне нужно отрегулировать ось Y так, чтобы изменения были включены, но это

Вот код, который у меня есть для графика:

let chart = LineChartView(frame: chart1View.bounds)
            let dayTrackerUnits = trackerCrawler.thisWeeksPoints()

            var xVals : [Int] = []
            var yVals : [ChartDataEntry] = []
            var minimum = 1000000000
            var maximum = 0
            for i in 0..<dayTrackerUnits.count {
                xVals.append(i)
                yVals.append(ChartDataEntry(value: Double(dayTrackerUnits[i].followerCount), xIndex: i))

                if dayTrackerUnits[i].followerCount < minimum {
                    minimum = dayTrackerUnits[i].followerCount
                }

                if dayTrackerUnits[i].followerCount > maximum {
                    maximum = dayTrackerUnits[i].followerCount
                }

            }

            print(yVals)

            let chartDataSet = LineChartDataSet(yVals: yVals, label: "Followers")
            chartDataSet.setColor(GlobalStyles.sharedStyles.instagramBlue())
            chartDataSet.lineWidth = 2.0
            chartDataSet.circleRadius = 5.0
            chartDataSet.circleColors = [GlobalStyles.sharedStyles.instagramBlue()]
            chartDataSet.drawValuesEnabled = false
            chartDataSet.drawVerticalHighlightIndicatorEnabled = true

            let data = LineChartData(xVals: xVals, dataSet: chartDataSet)
            chart.data = data
            chart.delegate = self
            chart.leftAxis.startAtZeroEnabled = false
            chart.rightAxis.startAtZeroEnabled = false
            print("min: \(minimum), max: \(maximum)")
            chart.rightAxis.enabled = false
            chart1View.addSubview(chart)
            left1Label.text = "Followers"

Я хотел бы установить yAxisMinimum в minimum и yAxisMaximum в maximum но график не будет отображать, как я хочу.

Какие-либо предложения?

1 ответ

Вы можете просто использовать customAxisMin/Max ограничить его диапазон.

Кстати, вы должны убедиться, что ваши значения данных не содержат 0. Кажется, что ваши данные имеют 0, поэтому они всегда начинаются с 0. У него есть небольшой алгоритм для вычисления диапазона оси в computeAxisValues в рендере оси Y.

Другие вопросы по тегам