利用python实现可视化大屏
作者:Python学习与数据挖掘 发布时间:2023-08-17 17:29:17
标签:python,实现,可视化,大屏
下文要实现的可视化大屏内容:需要在地图上将我司船舶的轨迹展示出来。听起来很简单,一开始我也是这样想的。通过一些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、大屏的由来
来源:https://blog.csdn.net/weixin_38037405/article/details/122367702


猜你喜欢
- 雪花算法是在一个项目体系中生成全局唯一ID标识的一种方式,偶然间看到了Python使用雪花算法不尽感叹真的是太便捷了。它生成的唯一ID的规则
- 开前准备Schedule使用方法。基本的Linux操作Python3环境Step1首先我得先假设你会了如何每十五分钟去运行一次检查这件事情。
- 算法简介SOM网络是一种竞争学习型的无监督神经网络,将高维空间中相似的样本点映射到网络输出层中的邻近神经元。训练过程简述:在接收到训练样本后
- 结合网上的资料,自己亲自的去安装了一次MySQL,安装版本是win7x64 5.7.16。在安装过程中出现并解决了如下问题:1.“MySQL
- Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。package mainimport "fmt"
- 本文实例讲述了Python列表元素常见操作。分享给大家供大家参考,具体如下:列表类似于java中的数组,用方括号表示,逗号分隔其中的元素#赋
- 在 Go 中,数组和切片的功能其实是类似的,都是用来存储一种类型元素的集合。数组是固定长度的,而切片的长度是可以调整的数组(array)我们
- 案例场景 今天在线上发现一个问题,由于监控没有覆盖到,某台机器的磁盘被写满了,导致线上My
- 单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保 某一个类只有一个实例存在 。当希望在
- 1、Dreamweaver中的复制我在网页中复制的文字,粘贴到Dreamweaver中时,它总是带有原来网页的格式,请问如何只复制其中的文本
- 本文实例讲述了python简单分割文件的方法。分享给大家供大家参考。具体如下:有的网站在上传文件时对文件大小有限制,因此可以将大文件分割成多
- 版本号:Python2.7.5,Python3改动较大,各位另寻教程。所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存
- 前言TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换,坐标变换是机器人学中的概念。在机器人学中,无论一个机器人多么复
- 目录1. 最直观的相加2. 借助 itertools3. 使用 * 解包4. 使用 extend5. 使用列表推导式6. 使用 heapq7
- 本文实例讲述了python实现的分析并统计nginx日志数据功能。分享给大家供大家参考,具体如下:利用python脚本分析nginx日志内容
- 遇到的问题:在pytorch训练过程中突然out of memory。解决方法:1. 测试的时候爆显存有可能是忘记设置no_grad加入 w
- strip_tags 去掉 HTML 及 PHP 的标记。 语法: string stri
- 关于二分法的定义我就不说了,CSDN很多大牛和前辈都已经阐述的很清楚了,直接上代码。首先,先创建一个名称为 binary_search 的函
- 本文实例讲述了js选项卡的实现方法。分享给大家供大家参考。具体分析如下:一、思路1. 获取元素;2. for循环按钮元素添加onclick(
- 代码如下import sysfrom PyQt5.QtWidgets import QApplication, QWidgetclass E