我正在使用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 个元素[],而不是访问反转时间的第 i 个元素[]。我甚至看不出它是如何编译的。