如何在 iOS 图表的左轴上添加字符串?

How to add Strings on Left Axis in iOS-charts?

我正在使用此代码配置左轴:

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?

IndexAxisValueFormatter 用于传递 x 轴标签数组,而不是 y 轴标签。您需要通过实施 IAxisValueFormatter 协议来创建自己的 y 轴值格式化程序。

例如,我想在我的 y 轴上显示某些值的自定义字符串标签。我创建了 MyLeftAxisFormatter class。

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 轴的显示值是由图表引擎根据视图高度、min/max 值等各种因素计算得出的。当您更改时,此值可能会更改源数据。