gpt4 book ai didi

Swift - 如何使用 iOS 图表设置 x 轴以显示每小时间隔

转载 作者:行者123 更新时间:2023-11-30 10:38:03 24 4
gpt4 key购买 nike

我有以下数据:

2019-08-14T13:00:00.000Z, 0.0015378000
2019-08-14T12:30:00.000Z, 0.0015172000
2019-08-14T12:00:00.000Z, 0.0014922000
2019-08-14T11:30:00.000Z, 0.0014706000
2019-08-14T11:00:00.000Z, 0.0014229000
2019-08-14T10:30:00.000Z, 0.0000989000
2019-08-14T10:00:00.000Z, 0.0000736000
2019-08-14T09:30:00.000Z, 0.0000508000
2019-08-14T09:00:00.000Z, 0.0000214000
2019-08-13T17:30:00.000Z, 0.0012805000

并使用图表库将此数据绘制成折线图,如下所示:

Graph

图表中的数据显示正确,但我注意到 x 轴显示的刻度不是每小时的,我理想情况下希望显示该刻度。

应用以下代码生成上述图表,尝试在 x 轴上设置每小时刻度:

xAxis.drawAxisLineEnabled = true
xAxis.drawGridLinesEnabled = true
xAxis.granularityEnabled = true
xAxis.granularity = 1.0 / 24.0

但是,当应用 1.0/2.4 粒度时,我能够在图表上显示 10 小时的间隔,如下所示:

10 Hour Interval graph

似乎粒度与给定图表的每小时费率不一致,这可能与它包含轴值之间的最小间隔这一事实有关(在我的情况下,最大持续时间最多可达 2天)。

有没有办法将 x 轴网格锁定/捕捉到每小时刻度?

最佳答案

虽然我相信这是一种解决方法,但我能够使用以下代码将网格捕捉到每小时最多 5 个 x 轴标签(其中 diff 是以天为单位的日期范围呈现在图表上:

// Determine a reasonable scale that complies to an hourly grid (Assume no more than 5 labels on grid)
let hourRange = diff * 24.0
let interval = Int(hourRange.rounded(FloatingPointRoundingRule.up)) / 5
if (interval <= 0)
{
xAxis.granularity = 1.0 / 24.0
} else {
xAxis.granularity = 1.0 / 24.0 * Double(interval)
}

Graph Image

关于Swift - 如何使用 iOS 图表设置 x 轴以显示每小时间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57488279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com