Swift 在iOS图表中设置时间标签

Swift 在iOS图表中设置时间标签,swift,datetime,charts,ios-charts,Swift,Datetime,Charts,Ios Charts,我在我的应用程序中添加了一个基于图表框架的折线图,用于绘制一段时间内(一天内)的值。格式非常简单:浮动和日期。我为我的xAxis实现了一个格式化程序 extension lineChartViewController: IAxisValueFormatter { func stringForValue( _ value: Double, axis _: AxisBase?) -> String { let formatter = DateFormatter()

我在我的应用程序中添加了一个基于图表框架的折线图,用于绘制一段时间内(一天内)的值。格式非常简单:浮动和日期。我为我的xAxis实现了一个格式化程序

extension lineChartViewController: IAxisValueFormatter {
    func stringForValue( _ value: Double, axis _: AxisBase?) -> String {
        let formatter = DateFormatter()
        formatter.dateStyle = .none
        formatter.timeStyle = .short
        return formatter.string(from: Date(timeIntervalSince1970: value))
    }
}
由于我的值在早上6:00到晚上9:00之间,所以我也计算并设置

lineChartView.xAxis.axisMinimum = xAxisMin
lineChartView.xAxis.axisMaximum = xAxisMax
其中
xAxisMin
xAxisMax
表示为
Double

let sod = Calendar.current.startOfDay(for: firstValue)
let startTime = 6.0
let endTime = 21.0

let xAxisMin = sod.timeIntervalSince1970 + startTime * 3600
let xAxisMax = xAxisMin + (endTime - startTime) * 3600
我的图表是准确的,数值(通过外推)在上午6:55、上午10:43、下午12:24等正确排列。。。但我无法让xAxis上的标签至少在时间上,而不是8:20、11:06、1:53

我试着玩
lineChartView.xAxis.labelCount=6
,但没有任何效果

  • 如何在设定的时间间隔(6:00、9:00、12:00、, 3:00等)

在SO或Github上找不到类似的内容,请提前感谢

非常感谢。。。这将非常有帮助,我相信它会回答我的问题谢谢你。。。我根据另一篇SO帖子和github示例更新了我的代码,并让它在一小时内对齐(粒度=3600),但不确定我做错了什么,因为我无法让它每2小时或3小时(0:00、2:00、4:00)或(0:00、3:00、6:00…)对齐一次。我原以为将粒度调整为7200就可以了(每2小时一次),但我没有在xAxis上获得舍入值。您需要更改粒度并设置VisibleXRange谢谢。。我使用了你的github repo(认为我的应用程序可能有问题)。。。并将粒度更改为7200,但无法提供组合setVisibleRange使其工作