如何使用iOS图表库创建一个底部轴上有日期时间的图表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用iOS图表库创建一个底部轴上有日期时间的图表?相关的知识,希望对你有一定的参考价值。

我目前正在使用 iOS库图表 并有一些问题,以实施一个 时间线 对于 x轴.

图书馆链接。https:/github.comdanielgindiCharts。

我有一个 对象列表 作为图表的输入。

let objectList : [Object] = fillObjectList()

class Object {
    var timeCreated : Date
    var value : Double
}

我已经 实施方案 在这里,我只是用了 timeCreated.timeIntervalsince1970 作为x轴的值。但是这样看起来并不是很好。

所以,如果你们中有人有使用ios图表库的经验,希望你们能想出解决这个问题的办法。先谢谢大家的帮助!

答案

你需要创建IAxisValueFormatter的实现类,像这样的东西

注:我没有编译过,所以可能需要改正。

public class DateValueFormatter: NSObject, IAxisValueFormatter {
    private let dateFormatter = DateFormatter()
    private let objects:[Object]

    init(objects: [Object]) {
        self.objects = objects
        super.init()
        dateFormatter.dateFormat = "dd MMM HH:mm"
    }

    public func stringForValue(_ value: Double, axis: AxisBase?) -> String {
        if value >= 0 && value < objects.count{
            let object = objects[Int(value)]
            return dateFormatter.string(from: object.timeCreated)
        }   
        return ""
    }
}

并使用以下代码格式化

xAxis.valueFormatter = DateValueFormatter(objects: objectList)

以上是关于如何使用iOS图表库创建一个底部轴上有日期时间的图表?的主要内容,如果未能解决你的问题,请参考以下文章

iOS图表,删除底部xAxis标签创建的额外空间

如何使用 matplotlib 在日期时间轴上绘制一个矩形?

处理 d3.js 轴上的日期

Qwt:将日期/时间标签文本在底部轴上对齐

使用 JFreeChart 在 x 轴上的日期时间

在日期轴上绘制函数