上瘾了,最近又给公司撸了一个可视化大屏(附源码)
2022-01-07 17:15
197 查看
我拿到的需求是这样的,需要在地图上将我司船舶的轨迹展示出来。听起来很简单,一开始我也是这样想的。通过一些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、20个大屏的由来
这次大屏需求之后,陆陆续续接了很多新的需求。我们整理了近20个可视化大屏模板,今天分析给大家,梳理不易,获取前记得点赞、收藏、关注。
4、获取方式
20款开源的可视化大屏(含源码)已打包放置后台了,获取方法如下:
- 方法1、微信搜索公众号:Python学习与数据挖掘,后台回复:可视化
- 方法2、扫描二维码或者发送图片到微信识别,后台回复:可视化
相关文章推荐
- HTTP协议中的短轮询、长轮询、长连接和短连接 序言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码。在研究一个项目的时候,源码里面用到了HTTP的长轮询。由于之前没太
- 最近公司引用了Google的一个基于java1.6的类库Guava,详细介绍查看下面的博客
- [置顶] 【R语言 数据处理和可视化】一个手游公司销售额数据分析
- 最近公司要求输出一个专利,只好硬着头皮准备拉
- 最近无意中看到一个讲解spring mvc的系列,从源码的角度讲解,特记录下来,供以后反复学习
- 我们公司最近需要采购一个视频系统,听说有个msvod视频系统挺不错,功能强大,不知道有没有免费版?
- 我最近给公司做的选择QTP测试工具的一个可行性分析文档
- 最近帮公司开发一个邮件营销软件 用到XPTable 但找了很多方法 摸索了很久都不知道如何更新进度条 不过在国外的一个网站 终于找到答案了
- 最近公司在新版本上有一个需要
- 最近我们公司要接一个微信公众帐号的需求
- 最近公司需要监测网络PING写了一个脚本
- 最近参加一个公司的入职培训
- 最近一直出差,WPF的学习也被滞后了,昨天刚回来就听到一个不好的消息,公司要倒了。
- 最近收到一个他人公司的关于某个jar包使用的Android Demo.发现有这样的一个开发手法,算是涨了一波姿势了。...
- 分享一个最近开发的人脸识别的闸机过程及源码
- 最近的遭遇:一个新项目在公司找不到市场,一直被拖着。 思考思考。。。。
- 一段源码,展示C# winform 如何识别 Ctrl+Shift+X组合键;如何选取离光标最近的一个单词。
- 如何做出一个优秀的数据可视化大屏?
- 最近闲暇无事,做了一个UDP监控的程序,贴出源码,供大家参考。
- 最近项目要求开发一个echarts的小功能图表,需要动态加载数据,现在做完后把源码拷上来