簡體   English   中英

使用Flot圖表對數據進行分組

[英]Grouping Data with Flot Charts

場景:我正在使用Flot JS繪制一個音量條形圖,每分鍾數據。 例如,3個小時,我從數據庫中提取了3 x 60個數據點。

問題:由於我有6個小時的數據點,並且圖表的寬度僅為250px,因此每個條的寬度僅為1px,沒有邊距。 我想知道在Flot Charts中是否有分組數據選項,我可以告訴它平均每15分鍾或30分鍾的體積數據。

$.plot('#flot-vol, [{
    color: '#fff',
    bars: { show: true },
    data: dataV
}], {
    grid: { show: false },
    shadowSize: false
});

在High Charts中有一個GroupData選項,您可以按日/周/月對給定數據進行分組。 我想知道Flot Charts中是否有這樣的功能?

如果我需要使用MySQL對數據進行分組,如果我有以下MySQL語句,如何每30分鍾對數據進行分組? 目前我正在從名為Ticker的表格中提取最新日期的所有數量。

SELECT UNIX_TIMESTAMP(`Timestamp`), `Volume` from `Ticker` WHERE CompID = 'symbol' AND Date(`Timestamp`) = (SELECT Max(Date(`Timestamp`)) FROM `Ticker`)

更新:

感謝Ryley澄清答案,如果有人想知道如何通過MySQL對數據進行分組,那么就是這樣。 工作的MySQL聲明

SELECT UNIX_TIMESTAMP(`Timestamp`), AVG(`Volume`) FROM `Ticker` WHERE `CompID` = 'symbol' AND Date(`Timestamp`) = (SELECT Max(Date(`Timestamp`)) FROM `Ticker`) GROUP BY (UNIX_TIMESTAMP(`Timestamp`) DIV 30*60)

Flot不會自己聚合數據,但是你正在考慮從mysql中做這件事。

使您的查詢將數據平均分為30分鍾段:

SELECT trunc(UNIX_TIMESTAMP(`Timestamp`)/(30*60))*(30*60) as time_chunk, 
       AVG(`Volume`) from `Ticker` 
WHERE CompID = 'symbol' AND 
      Date(`Timestamp`) = (SELECT Max(Date(`Timestamp`)) FROM `Ticker`)
GROUP BY time_chunk

我不是MySQL用戶,所以這可能不完全正確,但我們的想法是將您的時間戳和截斷時間縮短為30分鍾,然后在30分鍾內平均音量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM