網頁資料視覺化問題
想請問關於資料視覺化的部分,
若今天不只是要在jupyter notebook上畫圖,而是要把「大量」的圖呈現到網頁,隨著網址token的某一部份的不同(例如不同會員ID)而呈現不同會員的數據統計圖,而且需要例如至少「每天更新一次」資料,而資料來源是從MySQL,請問有什麼方法呢?
因為我本身沒有學過javascript,所以並沒有優先考慮補充資料提到的D3而是先瀏覽了一下google chart:https://developers.google.com/chart/interactive/docs/php_example
文件中看起來是這樣的處理方式:先做一個AJAX API抓取MySQL的資料並轉成json資料,再供google chart裡的arrayToDataTable讀取資料,就能畫出圖了
但由於AJAX那一段他是以PHP處理,我也沒學過,於是找到Python的版本參考:
https://stackoverflow.com/questions/49903579/google-charts-api-with-sql-data-in-python
想請問這樣的處理方向是對的嗎,或者還有沒有其他更簡潔的方法?
那麼如果要用這個方法的話,
import
json
... db code ...
return
json.dumps(dataFromQuery)
用Flask來處理API抓取DB資料那段嗎?
2. 再用javascript連到存取資料的API再畫圖出來
$.ajax({
url:
'path to python',
dataType:
'json'
}).done(function
(jsonData) {
// jsonData is what python returns
});
3. 那麼這兩者之間要怎麼連結呢?(例如 path to python的意思是什麼、以及該怎麼讓整個功能順利運行?)
謝謝!
回答列表
-
2019/05/06 下午 04:23張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
想請問這樣的處理方向是對的嗎,或者還有沒有其他更簡潔的方法?
那麼如果要用這個方法的話,
import
json
... db code ...
return
json.dumps(dataFromQuery)
用Flask來處理API抓取DB資料那段嗎?
2. 再用javascript連到存取資料的API再畫圖出來
$.ajax({
url:
'path to python',
dataType:
'json'
}).done(function
(jsonData) {
// jsonData is what python returns
});
3. 那麼這兩者之間要怎麼連結呢?(例如 path to python的意思是什麼、以及該怎麼讓整個功能順利運行?)
=> 這樣處理是對的,1. 利用 Flask 建立一個 API 的提供存取 2. 再利用 JavaScript 存取 API 將資料呈現到 d3 上 3. 兩者之間利用 API 做連結。
* path to python 應該是你在 Flask 當中設定的 API URL。
* 必須要開兩個服務,一個 Python Flask、一個網頁(包含 JavaScript)