我在Rails中提取了3個數據點:data1,data2和datetime。我需要組裝這些成用於插入兩個不同的二維數組成圖形(Highcharts)如此:http://jsfiddle.net/RKVgx/如何從查詢中構建二維數組?
可以看到,該數據將最終在js中使用,如:
series: [{
data: [[6, 540], [7, 540], [7, 1620], [8, 1620]]
},{
data: [[6, 340], [7, 340], [7, 620], [8, 620]]
}]
通過使用lazy_high_charts這是非常直接的,但我只需要適當地組成陣列輸出。我想是這樣的,但我需要在適當建立二維數組插入一些幫助:
readings = ModelName.order("date DESC").select('table_name.data1, table_name.data2, table_name.date').limit(1000).all
# HELP HERE, Need 2D arrays here...
data2_and_time_array = Array.new
data1_and_time_array = Array.new
readings.each do |row|
# HELP HERE, build place datetime into each for X axis
data1_and_time_array.push row[:date]
data2_and_time_array.push row[:date]
# These are the Y data points in each series
data1_and_time_array.push row[:data2].to_f
data2_and_time_array.push row[:data1].to_f
end
f.series(
:name => 'Data1',
# Date is X & must be first in each 2D array, I believe
# in format of: [[X1, Y1], [X2, Y2], ... [Xn, Yn]]
:data => data1_and_time_array
)
f.series(
:name => 'Data2',
:data => data2_and_time_array
)
如果你能提供相應的修復程序/邏輯做到這一點正確的示例代碼上面,我非常感謝。
輸入數據中的細節太多。簡單地給出一個示例輸入(Ruby對象),不需要太多的工作,以及你想要的輸出(你已經這麼做了)。 – tokland 2012-01-09 08:25:53