我正在尝试将库Charts(来自Daniel Gindi)从版本2(Swift 2.3)迁移到版本3(Swift 3),但遇到了困难。
基本上,我无法正确地对齐x轴标签(日期)与相应的绘图。
这是我在版本2中曾经有过的:
在版本2中,我有7、8、10和11天的值。
因此,在中间缺少一天,但标签与绘图正确对齐。
这是我在版本3中拥有的:
在版本3中,“x轴标签”现在已被双倍替换(用于日期,它是自1970年以来的时间间隔),并通过格式化程序进行格式化。
因此,毋庸置疑,现在图表更加“正确”,因为图表正确地外推了第9个值,但我找不到如何将标签放在相应的绘图下面。
这是我的x轴代码:
let chartView = LineChartView()
...
let xAxis = chartView.xAxis
xAxis.labelPosition = .bottom
xAxis.labelCount = entries.count
xAxis.drawLabelsEnabled = true
xAxis.drawLimitLinesBehindDataEnabled = true
xAxis.avoidFirstLastClippingEnabled = true
// Set the x values date formatter
let xValuesNumberFormatter = ChartXAxisFormatter()
xValuesNumberFormatter.dateFormatter = dayNumberAndShortNameFormatter // e.g. "wed 26"
xAxis.valueFormatter = xValuesNumberFormatter
这是我创建的ChartXAxisFormatter类:
import Foundation
import Charts
class ChartXAxisFormatter: NSObject {
var dateFormatter: DateFormatter?
}
extension ChartXAxisFormatter: IAxisValueFormatter {
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
if let dateFormatter = dateFormatter {
let date = Date(timeIntervalSince1970: value)
return dateFormatter.string(from: date)
}
return ""
}
}
所以,这里的数值是正确的,格式也正确,图表的形状也正确,但标签与相应绘图的对齐不好。
感谢你的帮助