Как сделать так, чтобы ось 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, но график не будет отображаться так, как я хочу.

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


person shakked    schedule 11.12.2015    source источник


Ответы (1)


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

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

person Wingzero    schedule 12.12.2015