2017-08-25 81 views
0

我正在使用iOS版圖表構建溫度折線圖。iOS-圖表 - 從最舊到最新顯示X軸(使用降序排序值)

我有一個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())我的圖表是空的。

+0

沒有看到您如何創建圖表UI,無法回答此問題。 –

+0

我使用iOS圖表[https://github.com/danielgindi/Charts](https://github.com/danielgindi/Charts)我的控制器有一個'temperatureLineChartView:LineChartView!'然後在ViewDidLoad我有代碼我張貼在我的問題。 – Loris

回答

0

如果您需要做的是以相反的順序顯示數據,那麼您可以調用範圍的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個元素。我不明白這是如何編譯的。

相關問題