我无法通过与SwiftChart库一起使用来为X轴设置自定义标签

时间:2018-06-27 11:14:58

标签: ios swift

我通过Cocoapods集成了SwiftChart库,并且可以成功地将swiftChart属性用于折线图。但是我想自定义X轴标签,因为我有一些日期(2018/06 / 12、2018 / 06/13等)可以显示在X轴上。请您指导我。 我已根据需要集成了图书馆 https://github.com/gpbl/SwiftChart

2 个答案:

答案 0 :(得分:2)

您只应该阅读文档,我找到了此代码,可能正是您所需要的:

// Use `xLabels` to add more labels, even if empty
chart.xLabels = [0, 3, 6, 9, 12, 15, 18, 21, 24]
// Format the labels with a unit
chart.xLabelsFormatter = { String(Int(round($1))) + "h" }

之前的代码是用于在每个值上添加'h'的,您可以创建一个函数来解决您的要求。

编辑

您可以创建一个并行数组,并带有所需的日期,即[“ 2018/06/12”,“ 2018/06/13”,“ 2018/06/13”,“ 2018/06/13”,“ 2018 / 06/13“]和xLabels的数组,即[3,5,12,5,34] ..都具有相同数量的项目,并且您可以在同一索引上替换此日期数组的值。

您在图表中具有糖语法$ 0的索引。xLabelsFormatter= {}

open var xLabelsFormatter = { (labelIndex: Int, labelValue: Double) -> String in
    String(Int(labelValue))
}

答案 1 :(得分:0)

最后,我通过创建一个单独的数组解决了我的问题,该数组包含相同数量的实际数组对象,并使用该数组显示在x轴标签上。

let mainArray = [0, 3, 6, 9, 12,] 
let displayArray = ["01/03/18", "012/03/18", "15/03/18", "17/03/18", "20/03/18"]
self.chartView.xLabels = mainArray
self.chartView.xLabelsFormatter =  { (labelIndex: Int, labelValue: Double) -> String in
            return displayArray[labelIndex]
        } self.chartView.add(series)