如何正确使用粒度以避免在时间轴上出现重复标签?

时间:2019-07-21 11:16:59

标签: swift ios-charts

当我们放大图表时,我试图避免在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时的外观。

我找不到我做错了什么以及为什么它无法按预期工作。

如果我的解释不清楚,请告诉我。

谢谢

0 个答案:

没有答案
相关问题