iOS图表库 - 如何处理X轴重复值

时间:2017-03-29 14:40:09

标签: swift charts ios-charts

我使用@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]

Sample GIF file:

iOS图表库链接:https://github.com/danielgindi/Charts

1 个答案:

答案 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];