pyecharts绘制自定义点+连线取消箭头+时间帧叠加

pyecharts之Geo地图大法(详解,代码带注释+效果图)

近期项目上有地图自定义绘点+连线+分严重等级的需求,整了,分开处理啥都好说,多个数据放在同一维度的时候,只恨pyecharts的开发者为什么把功能整得这么简单,要点复杂的图都难搞,害!步入正题。

以下代码均可直接食用,且加上了宇宙无敌超级超级第一级别史无前有的 详细注释,带对应环境+版本号,直接看,直接用!!!!

(声明一下,网上太多的功能其实都是来自不同版本的,而不同版本之间很多功能都容易无法直接使用,且数据很多是不直接给的,或者没有效果图,看不到效果图就要咱先担着浪费时间找数据,改bug,改版本,还不一定是意向效果不知道参数意思的情况下去看,咱是真狗都 不想看)

地图自定义标点+连线

# 版本pyecharts==1.6.1,python3.7.6
import pandas as pd
from pyecharts.charts import Map, Geo
from pyecharts import options as opts
import random
from pyecharts.globals import ChartType,SymbolType# 获取数据
d1 = [('测试点1', 114.8021, 27.8261), ('测试点2', 115.18, 29.16), ('测试点3', 114.279, 29.001), ('测试点4', 116.024, 28.1079), ('测试点5', 118.01, 28.97)]# 经纬度
# d2 = [('测试点1', 11), ('测试点2', 44), ('测试点3', 88), ('测试点4', 0), ('测试点5', 56)]# 数值大小
d3 = [('测试点1', '测试点2'),('测试点1', '测试点3'),('测试点4', '测试点5')]map=Geo(init_opts=opts.InitOpts(width="1900px",height='1080px'))map.add_schema(maptype="江西",# 选择江西的板块地图itemstyle_opts=opts.ItemStyleOpts(color = '#ECECECFF',border_color = '#ECECECFF'),# 板块颜色和边框颜色设置为相同is_roam=True ,# 是否在鼠标移到节点上的时候突出显示节点以及节点的边和邻接节点。
)# 根据经纬度自定义添加点
for i in d1:map.add_coordinate(i[0], i[1], i[2])# 添加图例和对应数值大小,自己选择是否添加,不想要可以i[1]改为0或者空字符'' 
map.add('第一组值', [(i[0], i[1]) for i in d2],type_=ChartType.SCATTER,symbol_size=12,# 点大小)# 添加连线图
map.add("点连线",d3,  #需要显示的元组对type_=ChartType.LINES,effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW , symbol_size=1, # 游动图标点的大小color="blue",# 线的颜色period = 7,# 点到终点的时长,周期,秒),linestyle_opts=opts.LineStyleOpts(curve=0.4, color='#b0e2ff', opacity=0.3),# 线的样式,卷曲度,颜色,透明度, 设置is_polyline=True后线样式无效is_polyline=True,  # 取消连接线条尾部的箭头 
)map.set_series_opts(label_opts=opts.LabelOpts(is_show=False),#  取消设置点的数值标签)
map.set_global_opts(title_opts=opts.TitleOpts(title='测试图',subtitle='测试专用'),
#     visualmap_opts=opts.VisualMapOpts(  #  设置不同严重程度的颜色, 不设置颜色时,将能看到实线条,推测该设置更改了某个设置线条的值
#         # 以下5个参数来自2.0.4,在1.6.1版本中未验证
# #         max_=100,# 最大数值
# #         min_=0, # 最小数值
# #         is_piecewise=True, # 是否将数值分组展示,默认渐变,不分组
# #         range_color=['#8FFF88FF','#FFB37FFF','#DE3333FF'] # 渐变颜色组
#     ),
#     toolbox_opts = opts.ToolboxOpts())map.render('测试地图.html') 
# map.render_notebook()

效果图
在这里插入图片描述

地图自定义标点+连线+设置地点的不同值和颜色

 # 版本pyecharts==1.6.1,python3.7.6
import pandas as pd
from pyecharts.charts import Map, Geo
from pyecharts import options as opts
import random
from pyecharts.globals import ChartType,SymbolType# 获取数据
d1 = [('测试点1', 114.8021, 27.8261), ('测试点2', 115.18, 29.16), ('测试点3', 114.279, 29.001), ('测试点4', 116.024, 28.1079), ('测试点5', 118.01, 28.97)]# 经纬度
d2 = [('测试点1', 11), ('测试点2', 44), ('测试点3', 88), ('测试点4', 0), ('测试点5', 56)]# 数值大小
d3 = [('测试点1', '测试点2'),('测试点1', '测试点3'),('测试点4', '测试点5')]map=Geo(init_opts=opts.InitOpts(width="1900px",height='1080px'))map.add_schema(maptype="江西",# 选择江西的板块地图itemstyle_opts=opts.ItemStyleOpts(color = '#ECECECFF',border_color = '#ECECECFF'),# 板块颜色和边框颜色设置为相同is_roam=True ,# 是否在鼠标移到节点上的时候突出显示节点以及节点的边和邻接节点。
)# 根据经纬度自定义添加点
for i in d1:map.add_coordinate(i[0], i[1], i[2])# 添加图例和对应数值大小,自己选择是否添加 
map.add('第一组值', [(i[0], i[1]) for i in d2],type_=ChartType.SCATTER,symbol_size=12,# 点大小)# 添加连线图
map.add("点连线",d3,  #需要显示的元组对type_=ChartType.LINES,effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW , symbol_size=1, # 游动图标点的大小color="blue",# 线的颜色period = 7,# 点到终点的时长,周期,秒),linestyle_opts=opts.LineStyleOpts(curve=0.2, color='#b0e2ff', opacity=0.3),# 线的样式,卷曲度,颜色,透明度, 设置is_polyline=True后线样式无效
#     is_polyline=True,  # 取消连接线条尾部的箭头 
)map.set_series_opts(label_opts=opts.LabelOpts(is_show=False),#  取消设置点的数值标签)
map.set_global_opts(title_opts=opts.TitleOpts(title='测试图',subtitle='测试专用'),visualmap_opts=opts.VisualMapOpts(  #  设置不同严重程度的颜色, 不设置颜色时,将能看到实线条,推测该设置更改了某个设置线条的值# 以下5个参数来自2.0.4,在1.6.1版本中未验证
#         max_=100,# 最大数值
#         min_=0, # 最小数值
#         is_piecewise=True, # 是否将数值分组展示,默认渐变,不分组
#         range_color=['#8FFF88FF','#FFB37FFF','#DE3333FF'] # 渐变颜色组),
#     toolbox_opts = opts.ToolboxOpts())map.render('测试地图2.html') 
# map.render_notebook()

效果图
在这里插入图片描述

地图自定义标点+连线+设置地点的不同值和颜色+时间线叠加图层

 # 版本pyecharts==1.6.1,python3.7.6
import pandas as pd
from pyecharts.charts import Map, Geo
from pyecharts import options as opts
import random
from pyecharts.globals import ChartType,SymbolType
from pyecharts.charts import Bar, Timeline# 获取数据
d1 = [('测试点1', 114.8021, 27.8261), ('测试点2', 115.18, 29.16), ('测试点3', 114.279, 29.001), ('测试点4', 116.024, 28.1079), ('测试点5', 118.01, 28.97)]# 经纬度
d2 = [('测试点1', 11), ('测试点2', 44), ('测试点3', 88), ('测试点4', 0), ('测试点5', 56)]# 数值大小
d3 = [('测试点1', '测试点2'),('测试点1', '测试点3'),('测试点4', '测试点5')]
d4 = ['某年月日1', '某年月日2', '某年月日3', '某年月日4']timeline = Timeline()
for ind, my_map in enumerate(d4):map=Geo(init_opts=opts.InitOpts(width="1900px",height='1080px'))map.add_schema(maptype="江西",# 选择江西的板块地图itemstyle_opts=opts.ItemStyleOpts(color = '#ECECECFF',border_color = '#ECECECFF'),# 板块颜色和边框颜色设置为相同is_roam=True ,# 是否在鼠标移到节点上的时候突出显示节点以及节点的边和邻接节点。)# 根据经纬度自定义添加点for i in d1:map.add_coordinate(i[0], i[1], i[2])# 添加图例和对应数值大小,自己选择是否添加 map.add('第一组值', [(i[0], i[1]+20*ind) for i in d2],# 为了在不同时间中能看出变化,作者在所有值里加了20,方便看到动态变化的效果type_=ChartType.SCATTER,symbol_size=12,# 点大小)# 添加连线图map.add("点连线",d3,  #需要显示的元组对type_=ChartType.LINES,effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW , symbol_size=1, # 游动图标点的大小color="blue",# 线的颜色period = 7,# 点到终点的时长,周期,秒),linestyle_opts=opts.LineStyleOpts(curve=0.2, color='#b0e2ff', opacity=0.3),# 线的样式,卷曲度,颜色,透明度, 设置is_polyline=True后线样式无效#     is_polyline=True,  # 取消连接线条尾部的箭头 )map.set_series_opts(label_opts=opts.LabelOpts(is_show=False),#  取消设置点的数值标签)map.set_global_opts(title_opts=opts.TitleOpts(title='测试图',subtitle='测试专用'),visualmap_opts=opts.VisualMapOpts(  #  设置不同严重程度的颜色, 不设置颜色时,将能看到实线条,推测该设置更改了某个设置线条的值# 以下5个参数来自2.0.4,在1.6.1版本中未验证#         max_=100,# 最大数值#         min_=0, # 最小数值#         is_piecewise=True, # 是否将数值分组展示,默认渐变,不分组#         range_color=['#8FFF88FF','#FFB37FFF','#DE3333FF'] # 渐变颜色组),#     toolbox_opts = opts.ToolboxOpts())timeline.add(map, my_map)# 添加单个图到对应时间线中
timeline.add_schema(is_auto_play=False, play_interval=1000)# 设置是否自动循环播放和播放间隔
timeline.render('测试地图-timeline.html')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/226375.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion绘画系列【3】:二次元动漫画风

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

2005-2022年全球各国经济距离数据

2005-2022年全球各国经济制度距离数据 1、时间:2005-2022年 2、指标:国家、年份、经济距离1(根据美国传统基金会世界经济自由度指数整理)、经济距离2(参考(Kogut&Singh,1988)构建经济制度距离) 3、范…

Compose入门

​ 本篇文章主要是为了对Compose有一个初步了解。知道Compose是做什么的,用Compose能干什么,在目前的各种UI框架下面有些优势,参考Google官网的解释加上一些自己的理解生成的一篇文章。本人也是Compose初学者,通过每一步学习遇到哪…

ROS知识:卡尔曼滤波

https://en.wikipedia.org/wiki/Kalman_filter 一、提要 在卡尔曼滤波的相关技术文献中,其数学表达看起来都非常晦涩和不透明。这很糟糕,如果您以正确的方式看待卡尔曼滤波器,它实际上非常简单易懂。这里的叙述简单,先决条件也很简单;您所需要的只是对概率和矩阵的基本了解…

你真的懂人工智能吗?AI真的只是能陪你聊天而已吗?

提到AI这个词语,相信大家并不陌生,尤其是前段时间爆火的chatgpt,让我们发现似乎AI已经渗透到我们生活的方方面面了,但是你确定你真的了解AI这个事物吗?它真的只是一个简简单单的人工智能吗?恐怕不止如此。那…

有权图的最短路径算法

目录 单源最短路径问题 Dijkstra算法 原理 ​ 获得最短路径长度的Dijkstra代码实现 时间复杂度 算法优化 优先队列优化后的代码实现 时间复杂度 可以具体获得最短路径的Dijkstra代码实现 Bellman-Ford算法 原理 代码实现 Floyed算法 原理 代码实现 单源最短路…

http项目遇到的问题

问题 启动 ./httpServer 8081后, 在浏览器地址栏输入:http://192.168.186.128:8081/test_cgi,按下回车 陆续获取几个新连接, 在第四次获取到新连接时,输出 get a new link ... sock fd : 5 ReadLine函数 -> recv返回值为0 请求状态行的长…

JRT对历史表和$get实现

由于Cache没有什么表数据大了查询和插入性能下降的问题,而关系库在数据量上千万后会性能下降,之前关注点都是Java业务脚本化和开发部署简单,还没管关系库单表大问题和级联查询复杂后慢的问题,现在开始解决这俩问题,这是…

【Java】7. 类型转换和类型判断

7. 类型转换 7.1 基本类型转换 顺箭头:隐式转换(自动) 逆箭头:强制转换(可能造成精度丢失) byte a 10; int b a; int c 1000; byte d (byte) c; System.out.println(d); // -24 7.2 包装类型与基…

什么是 dropblock

大家好啊,我是董董灿。 之前介绍过 dropout 算法,它在训练神经网络中,可以随机丢弃神经元,是一种防止网络过拟合的方法。 但是在卷积神经网络中,dropout 的表现却不是很好,于是研究人员又搞了一个“结构化…

第二十章总结

线程简介 Windows操作系统是多任务操作系统,它以进程为单位。一个进程是一个包含有自身地址的程序,每个独立执行的程序都称为进程。也就是说每个正在执行的程序都是一个进程。系统可以分配给每一个进程有一段有限的使用CPU的时间(也可以称为…

建筑木模板厂家批发

在建筑施工中,木模板是一种常见且重要的施工材料,用于搭建混凝土浇筑的支撑结构。选择合适的建筑木模板厂家进行批发,对于施工质量和效率至关重要。本文将介绍建筑木模板厂家批发的重要性,并推荐贵港市能强优品木业作为专业的建筑…