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 рассчитываются механизмом диаграмм в зависимости от различных факторов, таких как высота представления, минимальные / максимальные значения и т. д. И эти значения могут изменяться при изменении исходных данных.