iOS-图表 - 从最旧到最新显示 X 轴(使用降序排序的值)

iOS-Charts - Display X-Axis from oldest to newest (using descending-sorted values)

我正在使用 iOS 的图表构建温度折线图。

我有一个 timeline,其中包含从现在开始的秒数 time 和相应的温度数组 temp

示例:

timeline.time = [504,633,777,803,1020]
timeline.temp = [87,88,88,86,87]

我希望我的图表在左侧显示从现在开始最早的几秒钟的温度,在右侧显示最新的几秒钟,但是当我按降序排列 time 数组时,我的图表是空的。有没有办法显示一个图表,左边是x轴上的最小值,右边是最大值?

这是我当前的代码:

    var lineChartEntry = [ChartDataEntry]()

    //loop in env data
    for i in 0..<timeline.temp.count {
        let value = ChartDataEntry(x: Double(timeline.time[i]), y: Double(timeline.temp[i]))
        lineChartEntry.append(value)
    }

    let line1 = LineChartDataSet(values: lineChartEntry, label: "Temperature (°F)")
    line1.colors = [UIColor.irbLightGreenColor()]
    line1.mode = .horizontalBezier
    line1.drawCirclesEnabled = false
    line1.lineWidth = 3

    let data = LineChartData(dataSet: line1)

    data.setDrawValues(false)
    temperatureLineChartView.data = data

如果我尝试像这样反转数组:Array(timeline.time[i].reversed()) / Array(timeline.temp[i].reversed()) 我的图表是空的。

如果您需要做的是倒序显示数据,那么您可以调用范围的 reversed() 方法来更改索引并保留数据。

for i in (0..<timeline.temp.count).reversed() {
    let value = ChartDataEntry(x: Double(timeline.time[i]), y: Double(timeline.temp[i]))
    lineChartEntry.append(value)
}

你在 Array(timeline.time[i].reversed()) 的尝试实际上是试图反转时间的第 i 个元素[],而不是访问 reversed 时间的第 i 个元素[ ].我什至不明白它是如何编译的。