当我们放大图表时,我试图避免在xAxis上像this那样重复标签。
这些标签代表一天中的小时,并由自定义IAxisValueFormatter
设置,stringForValue
方法看起来像这样func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return String(calendar.component(.hour, from: Date(timeIntervalSince1970: value)))
}
(每个value
是数据点日期的timeItervalValsince1970
属性。)
为解决此问题,我尝试使用演示项目中看到的granularity
。
我在xAxis上激活了粒度并将其设置为3600(一小时)
self.lineChartView.xAxis.granularityEnabled = true
self.lineChartView.xAxis.granularity = 3600
因此,现在,如果对应的值至少不是一个小时,则不应显示“下一个”标签。但事实并非如此。
我尝试将granularity
设置为更多时间,但没有结果。
这是我看过的演示代码,您可以看到它与我的非常相似:
设置粒度:
xAxis.granularity = 3600
xAxis.valueFormatter = DateValueFormatter()
还有stringForValue
方法(我对其进行了少许修改,以返回两位数的小时数):
public func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return String(calendar.component(.hour, from: Date(timeIntervalSince1970: value)))
}
这是缩放in时的外观。
我找不到我做错了什么以及为什么它无法按预期工作。
如果我的解释不清楚,请告诉我。
谢谢