Re: [問題] bokeh與matplotlib, 互動式圖片

作者: iamfenixsc (哈囉你好嗎)   2020-03-10 17:09:33
※ 引述《iamfenixsc (哈囉你好嗎)》之銘言:
: 大家好
: 最近做研究要把sensor收集到的資料畫互動式折線圖
: 但是由於收到的資料量都很大 (因為sensor每秒就一百多筆)
: 一個6小時多的資料大概就29萬多個資料點
^^^^
這邊當時講錯了,應該是297萬資料點才對 位數看錯 囧
: 使用bokeh畫圖之後用網頁打開,圖片沒問題,但是
: 1.超級吃資源(只開這個頁面就用掉1.4GB RAM)
: 2.超級慢 (打開網頁到圖出來要超過5分鐘,局部放大或是任何互動都要等20秒)
: 但是我用matplotlib.pyplot
: 用同一筆資料,打開視窗的速度跟開啟之後的互動情形都好很多
: (打開不用1分鐘,互動延遲不到0.5秒)
: 問題是matplotlib的互動式圖片就不知道要怎麼弄到網頁上...
: 不知道有沒有大神可以指引一下這種大規模資料要畫互動式圖片嵌在網頁上
: 有沒有甚麼推薦的工具?
感謝1.2樓推文的兩位大大建議
我都有採用 然後實際畫出,分享給大家參考
先講2樓的bokeh +webGL加速結果
參照這個網頁上的做法
https://docs.bokeh.org/en/latest/docs/user_guide/webgl.html
剛開始打開的時候會直接整片都是顏色,看起來像是當掉
但是操作一次局部放大(幾乎沒放大可以,但就是要動)就可以開始正常互動式圖片
非常有感,用webGL之後快上很多,但是297萬資料點真的還是太多了
實際上用起來還是卡卡的,但還算堪用
再來是一樓的plotly+webGL套件
參考的code如下
https://plot.ly/python/webgl-vs-svg/#webgl-with-1-million-points
用起來也是有感比較快
一樣問題,297萬點太多了,還是卡卡
但是一樣用webGL加速,但是Bokeh使用起來順暢度比plotly好上不少
100萬以下的資料點可能差異不大,兩邊都算順 但是資料量在上去
用bokeh + webGL是一個比較好的選擇
目前還沒測試超過300萬點的資料拉
以上一點經驗分享,謝謝大家
作者: ddavid (謊言接線生)   2020-03-10 17:29:00
這樣的話,也許可以考慮背後先做分群,然後一開始只秀群中心,放大以後才換成顯示點之類的?

Links booklink

Contact Us: admin [ a t ] ucptt.com