Как добавить строки на левой оси в iOS-диаграммах? - PullRequest
0 голосов
/ 21 октября 2018

Я использую этот код для конфигурации левой оси:

let leftAxis = chartView.leftAxis
leftAxis.removeAllLimitLines()
leftAxis.gridLineDashLengths = [5, 5]
leftAxis.drawLimitLinesBehindDataEnabled = true
leftAxis.labelTextColor = .white
leftAxis.axisMinimum = 0
leftAxis.drawLabelsEnabled = true
let array = ["a","b","c","e","f","g","h"]
leftAxis.valueFormatter = IndexAxisValueFormatter(values: array)
leftAxis.granularity = 1

Почему бы не показывать мои метки в левой оси iOS Swift?

1 Ответ

0 голосов
/ 21 октября 2018

IndexAxisValueFormatter используется для передачи массива меток оси X, а не меток оси Y.Вам нужно создать свой собственный модуль форматирования значений по оси Y, внедрив протокол IAxisValueFormatter.

Например, я хочу отображать пользовательские метки строк для некоторых значений на моей оси Y.Я создал MyLeftAxisFormatter класс.

class MyLeftAxisFormatter: NSObject, IAxisValueFormatter {

    var labels: [Int : String] = [ 0 : "zero", 3 : "three", 6 : "six", 9 : "nine", 12 : "twelve", 15 : "fifteen", 18 : "eighteen"]

    func stringForValue(_ value: Double, axis: AxisBase?) -> String {
        return labels[Int((value).rounded())] ?? ""
    }
}

И используйте его для левой оси на моем графике.

lineChartView.leftAxis.valueFormatter = MyLeftAxisFormatter()

Y-Axis Labels

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

...