文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

利用python实现可视化大屏

2024-04-02 19:55

关注

下文要实现的可视化大屏内容:需要在地图上将我司船舶的轨迹展示出来。听起来很简单,一开始我也是这样想的。通过一些BI工具应该可以轻松实现,比如这样的:

仔细观察可以看到,这种轨迹是两点之前的弧线,适合用来展示航空的航线或者起点终点方向类型轨迹,而加载了插件后发现,其功能是无法支持船舶轨迹的数据的,所以该插件被pass掉了。

百度已经无法找到合适的资源了,于是我又转向了微信公众号搜索,我发现了folium这个地图可视化的库。它的可视化地图让人着迷,也支持不同的瓦片(高德,谷歌,也有内置的)风格供你选择,可以在地图上描绘点,圈,直线,热力图等风格的图片,但是如何将轨迹在地图上描绘出来,不论是如何搜索技术文章,也无论是看官方文档,能实现轨迹的只能通过点来描绘,当点足够密集,就相当于轨迹了,类似于中国台风网这种图的样式,

如下图:

但现实情况是,我们船舶的轨迹是没有如此频繁的轨迹数据的,那么folium包也没有办法实现我的需求。终于,功夫不负有心人,plotly 这个可视化的包被我找到了。

1、实践之轨迹地图

轨迹地图使用plotly包,具体脚本如下,数据为自己模拟数据。

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的网站去申请一个账号'
style = 'streets'
# 采用的风格为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、最终制作出来的效果图

就这样,对大屏各个模板进行打磨,我们最终效果图是这样的。

3、大屏的由来

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯