如何使用 iOS 图表库在底轴上创建带有日期/时间的图表?
How to create a Chart with Date / Time on the bottom Axis using iOS Charts Library?
我目前正在使用 iOS 图书馆图表,在为 x 轴。
图书馆Link:https://github.com/danielgindi/Charts
I have a List of Objects as the Input for the Chart.
let objectList : [Object] = fillObjectList()
class Object {
var timeCreated : Date
var value : Double
}
I already implemented a solution where I just used the timeCreated.timeIntervalsince1970
as the values for the x Axis. But this does not look so great.
所以如果你们中的一些人有一些使用 iOS 图表库的经验,我希望你们能想出解决这个问题的方法。非常感谢您的提前帮助!
您需要创建 IAxisValueFormatter 的实现 class,类似这样
注意:我没有编译它,所以可能需要一些更正
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)
编辑:
你可以看到我在这个repo
中尝试使用图表库的一些例子
我目前正在使用 iOS 图书馆图表,在为 x 轴。
图书馆Link:https://github.com/danielgindi/Charts
I have a List of Objects as the Input for the Chart.
let objectList : [Object] = fillObjectList()
class Object {
var timeCreated : Date
var value : Double
}
I already implemented a solution where I just used the
timeCreated.timeIntervalsince1970
as the values for the x Axis. But this does not look so great.
所以如果你们中的一些人有一些使用 iOS 图表库的经验,我希望你们能想出解决这个问题的方法。非常感谢您的提前帮助!
您需要创建 IAxisValueFormatter 的实现 class,类似这样
注意:我没有编译它,所以可能需要一些更正
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)
编辑: 你可以看到我在这个repo
中尝试使用图表库的一些例子