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 个元素[ ].我什至不明白它是如何编译的。
我正在使用 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 个元素[ ].我什至不明白它是如何编译的。