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

问题描述 投票:1回答:1

我使用@danielgindi的Charts库为我的iOS应用程序生成图形。一切似乎都很好,但我们正面临着X轴数据复制的问题。

图形的输入数据(X轴值,Y轴值)

("29/03/2017 00:00:00","2.7")

("29/03/2017 00:00:00","2.4")

("29/03/2017 00:10:00","1.3")

("29/03/2017 00:10:00","1.5")

("29/03/2017 00:20:00","1.8")

....

....

....

("29/03/2017 01:00:00","1.2")

("29/03/2017 09:00:00","2.7")

("29/03/2017 09:10:00","-10.8")

....

....

....

("29/03/2017 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,上午09:00,中午12:00,下午03:00,下午06:00,下午9:00,中午12:00]

缩放时 - [12:00 AM,01:00 AM,02:00 AM,03:00 AM ...... 12:00 PM]

再次缩放 - [上午12:00,上午12:30,11: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

swift charts ios-charts
1个回答
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];

© www.soinside.com 2019 - 2024. All rights reserved.