我使用@danielgindi的Charts库为我的iOS应用程序生成图表。一切似乎都运行正常,但我们正面临着X轴数据重复的问题。
图表的输入数据(X轴值,Y轴值)
(“2017/03/29 00:00:00”,“2.7”)
(“2017/03/29 00:00:00”,“2.4”)
(“2017/03/29 00:10:00”,“1.3”)
(“2017/03/29 00:10:00”,“1.5”)
(“2017/03/29 00:20:00”,“1.8”)
...
...
...
(“2017/03/29 01:00:00”,“1.2”)
(“2017/03/29 09:00:00”,“2.7”)
(“2017/03/29 09:10:00”,“ - 10.8”)
...
...
...
(“2017/03/29 13:10:00”,“3.9”)
(“29/03/2017 13:20:00”,“ - 。8”)
(“29/03/2017 13:20:00”,“5.9”
其中X轴值是日期时间,Y轴值是与该日期时间关联的Double值。
我已使用以下代码进行格式化X轴
class ChartStringFormatter: NSObject, IAxisValueFormatter {
public func stringForValue(_ value: TimeInterval, axis: AxisBase?) -> String {
let date = Date(timeIntervalSince1970: value)
return date.toString(format: "hh:mm a")
}
}
但是当我缩放图形时,它有多个X轴值。我该如何解决这个问题?
X轴值的预期输出:
最初 - [上午12:00,上午03:00,上午06:00,上午9:00,下午12:00,下午03:00,下午06:00,下午9:00,中午12:00 ]
缩放时 - [上午12:00,上午01:00,上午02:00,上午03:00 ......下午12:00]
再次缩放 - [12:00 AM,12:30 AM,01:00 AM,01:30 AM,02:00 AM,02:30 AM,03:00 AM ...... 12:00 PM ]
<再次再次缩放 - [上午12:00,上午12:10,上午12:20,上午12:30 ......下午12:00]答案 0 :(得分:1)
如iOS-Charts图书馆文档中所述:
如果为true,则轴标签由
granularity
属性控制。如果为false,则可能会重复轴值。
...
@property (nonatomic) BOOL granularityEnabled;
和
轴值之间的最小间隔。
这可用于避免放大时标签重复。
默认:1.0
@property (nonatomic) double granularity;
所以我非常确定这些专栏将为您完成工作:
[yourChart.xAxis setGranularityEnabled:YES];
[yourChart.xAxis setGranularity:1.0];