iOS图表库-如何处理X轴重复值 [英] iOS Charts Library - How to handle X-Axis duplicate values
问题描述
我已经使用@danielgindi的Charts库为我的iOS应用程序生成了图形.似乎一切正常,但我们面临着X轴数据复制的问题.
I have used Charts library by @danielgindi to generate the graph for my iOS application. All seems works fine but we are facing issue with X-Axis data duplication.
以(X轴值,Y轴值)的图形输入数据
("29/29/2017/00:00:00","2.7")
("29/03/2017 00:00:00","2.7")
(" 29/03/2017 00:00:00," 2.4)
("29/03/2017 00:00:00","2.4")
("29/29/2017/00:10:00","1.3")
("29/03/2017 00:10:00","1.3")
(" 29/03/2017 00:10:00," 1.5)
("29/03/2017 00:10:00","1.5")
("29/29/2017/00:20:00","1.8")
("29/03/2017 00:20:00","1.8")
....
....
....
(" 29/03/2017 01:00:00," 1.2)
("29/03/2017 01:00:00","1.2")
(" 29/03/2017 09:00:00," 2.7)
("29/03/2017 09:00:00","2.7")
("29/29/2017/09:10:00",-10.8")
("29/03/2017 09:10:00","-10.8")
....
....
....
("29/29/2017/13:10:00","3.9")
("29/03/2017 13:10:00","3.9")
("29/29/2017/13:20:00",-.8")
("29/03/2017 13:20:00","-.8")
(" 29/03/2017 13:20:00," 5.9"
("29/03/2017 13:20:00","5.9"
其中X轴值为日期时间,Y轴值为与该日期时间相关联的Double值.
Where X-Axis value is date time and Y Axis value is Double value associated to that date-time.
我已将以下代码用于格式化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轴值.我应该如何解决这个问题?
But when I zoom the graph it has multiple values for X-Axis. How should I resolved this issues?
X轴值的预期输出:
最初-[12:00 AM,03:00 AM,06:00 AM,09:00 AM,12:00 PM,03:00 PM,06:00 PM,09:00 PM,12:00 PM]
Initially - [12:00 AM, 03:00 AM, 06:00 AM, 09:00 AM, 12:00 PM, 03:00 PM, 06:00 PM, 09:00 PM, 12:00 PM]
缩放时-[12:00 AM,01:00 AM,02:00 AM,03:00 AM ...... 12:00 PM]
When Zoom - [12:00 AM, 01:00 AM, 02:00 AM, 03:00 AM ...... 12:00 PM]
再次放大-[12:00 AM,12:30 AM,01:00 AM,01:30 AM、02:00 AM,02:30 AM,03:00 AM ...... 12:00 PM]
Again Zoom - [12:00 AM, 12:30 AM, 01:00 AM, 01:30AM, 02:00 AM, 02:30 AM, 03:00 AM ...... 12:00 PM]
再次再次放大-[12:00 AM,12:10 AM,12:20 AM,12:30 AM ...... 12:00 PM]
Again Again Zoom - [12:00 AM, 12:10 AM, 12:20 AM, 12:30 AM ...... 12:00 PM]
Sample GIF file:
iOS图表库链接: https://github.com/danielgindi/Charts
iOS Charts Library Link: https://github.com/danielgindi/Charts
推荐答案
如iOS图表库文档中所述:
As mentioned in iOS-Charts library documentation:
为true时,轴标签由
granularity
属性控制.
为false时,轴值可能会重复.
When false, axis values could possibly be repeated.
...
@property(非原子)BOOL粒度启用;
和:
轴值之间的最小间隔.
The minimum interval between axis values.
这可以避免在放大时重复标签.
This can be used to avoid label duplicating when zooming in.
默认:1.0
@属性(非原子)双粒度;
因此,我非常确定这些行将为您完成工作:
So Im pretty sure that those lines will do the work for you:
[yourChart.xAxis setGranularityEnabled:YES];
[yourChart.xAxis setGranularity:1.0];
这篇关于iOS图表库-如何处理X轴重复值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!