我正在使用 Charts for iOS 构建温度折线图。
我有一个时间轴
,其中包含从现在开始的秒数 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())
中的尝试实际上是试图反转 time[] 的第 i 个元素,而不是访问 time[] 的第 i 个元素反转时间[]。我什至不明白它是如何编译的。
关于swift - iOS-Charts - 从最旧到最新显示 X 轴(使用降序排序的值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45872751/