利用python實(shí)現(xiàn)可視化大屏
下文要實(shí)現(xiàn)的可視化大屏內(nèi)容:需要在地圖上將我司船舶的軌跡展示出來。聽起來很簡單,一開始我也是這樣想的。通過一些BI工具應(yīng)該可以輕松實(shí)現(xiàn),比如這樣的:
仔細(xì)觀察可以看到,這種軌跡是兩點(diǎn)之前的弧線,適合用來展示航空的航線或者起點(diǎn)終點(diǎn)方向類型軌跡,而加載了插件后發(fā)現(xiàn),其功能是無法支持船舶軌跡的數(shù)據(jù)的,所以該插件被pass掉了。
百度已經(jīng)無法找到合適的資源了,于是我又轉(zhuǎn)向了微信公眾號搜索,我發(fā)現(xiàn)了folium這個(gè)地圖可視化的庫。它的可視化地圖讓人著迷,也支持不同的瓦片(高德,谷歌,也有內(nèi)置的)風(fēng)格供你選擇,可以在地圖上描繪點(diǎn),圈,直線,熱力圖等風(fēng)格的圖片,但是如何將軌跡在地圖上描繪出來,不論是如何搜索技術(shù)文章,也無論是看官方文檔,能實(shí)現(xiàn)軌跡的只能通過點(diǎn)來描繪,當(dāng)點(diǎn)足夠密集,就相當(dāng)于軌跡了,類似于中國臺(tái)風(fēng)網(wǎng)這種圖的樣式,
如下圖:
但現(xiàn)實(shí)情況是,我們船舶的軌跡是沒有如此頻繁的軌跡數(shù)據(jù)的,那么folium包也沒有辦法實(shí)現(xiàn)我的需求。終于,功夫不負(fù)有心人,plotly 這個(gè)可視化的包被我找到了。
1、實(shí)踐之軌跡地圖
軌跡地圖使用plotly
包,具體腳本如下,數(shù)據(jù)為自己模擬數(shù)據(jù)。
import ?os import plotly.graph_objects as go import plotly as py url = r'D:\working_directory\task\文章\shipping_line.html' mapbox_access_key = '需要你自己去mapbox的網(wǎng)站去申請一個(gè)賬號' style = 'streets' # 采用的風(fēng)格為streets類型 fig = go.Figure() color_map = ['#7bd3f6', '#bcbd22', '#17becf','#d62728'] lat_li = [] lng_li = [] for item in [(122.180204,30.806457),(123.256865,29.762908),(123.366728,28.631261),(122.048368,26.350981),(120.048857,24.705378),(119.060087,22.835386),(119.543486,19.433918),(119.960966,16.276336),(116.159697,11.413759),(110.183134,5.067372),(105.173368,0.064226),(101.833525,1.909575),(101.833525,1.909575),(101.833525,1.909575),(88.122587,3.840643),(80.300322,5.154913),(76.433134,7.338996),(71.247587,13.900433),(63.425322,22.246862),(56.394072,25.857701)]: ? ? lng_li.append(item[0]) ? ? lat_li.append(item[1]) fig.add_trace(go.Scattermapbox( ? ? name='vessel', ? ? mode='markers+lines', ? ? lon=lng_li, ? ? lat=lat_li, ? ? marker={'size': 2, 'color': color_map[3]}, ? ? showlegend=False )) fig.update_layout( ? ? margin={'l': 0, 't': 0, 'b': 0, 'r': 0} ? ? , mapbox={ ? ? ? ? 'center': {'lon': 90, 'lat': 8}, ? ? ? ? 'zoom': 1 ? ? ? ? , 'style': style ? ? ? ? , 'accesstoken': mapbox_access_key} ) if os.path.isfile(url): ? ? os.remove(url) py.offline.plot(fig, filename=url, auto_open=False) # 保存為html文件
效果圖如下:
2、最終制作出來的效果圖
就這樣,對大屏各個(gè)模板進(jìn)行打磨,我們最終效果圖是這樣的。
3、大屏的由來
相關(guān)文章
解決pycharm py文件運(yùn)行后停止按鈕變成了灰色的問題
今天小編就為大家分享一篇解決pycharm py文件運(yùn)行后停止按鈕變成了灰色的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11使用Keras實(shí)現(xiàn)Tensor的相乘和相加代碼
這篇文章主要介紹了使用Keras實(shí)現(xiàn)Tensor的相乘和相加代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06keras 獲取某層輸出 獲取復(fù)用層的多次輸出實(shí)例
這篇文章主要介紹了keras 獲取某層輸出 獲取復(fù)用層的多次輸出實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05在python3環(huán)境下的Django中使用MySQL數(shù)據(jù)庫的實(shí)例
下面小編就為大家?guī)硪黄趐ython3環(huán)境下的Django中使用MySQL數(shù)據(jù)庫的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08django的403/404/500錯(cuò)誤自定義頁面的配置方式
這篇文章主要介紹了django的403/404/500錯(cuò)誤自定義頁面的配置方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python3.8官網(wǎng)文檔之類的基礎(chǔ)語法閱讀
類提供了一種組合數(shù)據(jù)和功能的方法,今天通過本文給大家分享Python3.8官網(wǎng)文檔之類的基礎(chǔ)語法閱讀知識,感興趣的朋友跟隨小編一起看看吧2021-09-09Python實(shí)現(xiàn)監(jiān)控一個(gè)程序的運(yùn)行情況
這篇文章主要為大家介紹了Python如何實(shí)現(xiàn)監(jiān)控一個(gè)程序的運(yùn)行情況,然后視情況將進(jìn)程殺死并重啟,文中的示例代碼簡潔易懂,需要的可以參考一下2023-05-05