pyecharts绘制世界动态轨迹图(v0.5.X与v1.X版本对比)

devtools/2024/9/18 12:47:42/ 标签: python, pyecharts, geo, geolines

一、问题引入

在这里插入图片描述

pyecharts官网:https://pyecharts.org/#/zh-cn/intro

在使用Geo或者GeoLines绘制动态轨迹图时,如果所选地区是中国的省份或者城市,是能够匹配到对应的经纬度并且正常绘制的;如果所选地区涉及到其他国家或者国外城市,则因无法匹配到对应的经纬度而绘制失败:ValueError(“No coordinate is specified for {}”.format(name)),pyecharts存储经纬度的文件在:“python根目录\Lib\site-packages\pyecharts\datasets\city_coordinates.json”(查看之后可以发现,存储的经纬度只有中国的城市),本文采取自定义经纬度的方式来解决这个问题,但pyecharts的v0.5.X和v1.X是互不兼容的,自定义经纬度的方式对比结果如下。

pyecharts05X_7">二、pyecharts=0.5.X

python程序:

python">from pyecharts import GeoLines  # pyecharts = 0.5.11geolines = GeoLines(width='1500px', height='600px', title='社会主义国家', title_pos='center')
geolines.add_coordinate('中国', 104.195397, 35.86166)
geolines.add_coordinate('朝鲜', 127.510093, 40.339852)
geolines.add_coordinate('越南', 108.277199, 14.058324)
geolines.add_coordinate('老挝', 102.495496, 19.85627)
geolines.add_coordinate('古巴', -77.781167, 21.521757)
data = [['中国', '朝鲜'], ['朝鲜', '越南'], ['越南', '老挝'], ['老挝', '古巴'], ['古巴', '中国']]geolines.add('', data=data, maptype='world', coordinate_region='world', symbol_size=0, label_color='blue', geo_normal_color='#fffdf5',geo_emphasis_color='yellow', is_label_show=True, label_text_color='black', legend_orient='bold', label_text_size=14, label_formatter='{b}',geo_effect_symbol='plane', geo_effect_symbolsize=28, geo_effect_color='blue', line_color='blue', line_curve=0.2, is_toolbox_show=False)
geolines.render('社会主义国家.html')

输出结果如下:
在这里插入图片描述

pyecharts1X_30">三、pyecharts=1.X

python程序:

python">from pyecharts.charts import Geo  # pyecharts = 1.7.1
from pyecharts.globals import ChartType
from pyecharts import options as optsgeo = Geo(init_opts=opts.InitOpts(width='1500px', height='600px'))
geo.add_coordinate('中国', 104.195397, 35.86166)
geo.add_coordinate('朝鲜', 127.510093, 40.339852)
geo.add_coordinate('越南', 108.277199, 14.058324)
geo.add_coordinate('老挝', 102.495496, 19.85627)
geo.add_coordinate('古巴', -77.781167, 21.521757)
nodes = [['中国', 1], ['朝鲜', 1], ['越南', 1], ['老挝', 1], ['古巴', 1]]
data = [['中国', '朝鲜'], ['朝鲜', '越南'], ['越南', '老挝'], ['老挝', '古巴'], ['古巴', '中国']]SYMBOL = {"plane": "path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.""063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.""305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.""799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.""531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134"".449-92.931l12.238-241.308L1705.06,1318.313z"
} # 原本是打算通过导入from pyecharts.globals import SymbolType的方式来绘制飞机的,但SymbolType只有ARROW、ROUND_RECT、RECT、DIAMOND、TRIANGLE这几种形状,因此只好通过自定义的SYMBOL来绘制飞机geo.set_global_opts(title_opts=opts.TitleOpts(title='社会主义国家', pos_top='top', pos_left='center'))
geo.add_schema(maptype='world', itemstyle_opts=opts.ItemStyleOpts(color='#fffdf5'), label_opts=opts.LabelOpts(is_show=False))
geo.add('', data_pair=nodes, type_=ChartType.SCATTER, symbol_size=1,label_opts=opts.LabelOpts(is_show=True, color='black', font_size=14, font_weight='bold', formatter='{b}'))
geo.add('', data_pair=data, type_=ChartType.LINES, symbol_size=0,effect_opts=opts.EffectOpts(symbol=SYMBOL['plane'], symbol_size=28, color='red', trail_length=0),linestyle_opts=opts.LineStyleOpts(curve=0.2), label_opts=opts.LabelOpts(is_show=False))
geo.render('社会主义国家.html')

输出结果如下:
在这里插入图片描述

四、世界国家和地区经纬度

世界国家和地区经纬度.txt:
https://url86.ctfile.com/f/32005086-1242343363-d2d0c3?p=5422
访问密码:5422

也可在以下推文查找:
https://blog.csdn.net/lin5165352/article/details/88019525


http://www.ppmy.cn/devtools/35715.html

相关文章

在Node.js(express 框架)中使用 nodemailer 实现邮箱注册功能

文章目录 一、准备工作1、安装 nodemailer2、打开 QQ(此处使用QQ邮箱) 的 IMAP/SMTP服务 二、功能实现1、发送邮件功能封装2、生成随机验证码3、发送邮箱验证码4、注册功能 三、邮件接收消息展示四、参考资料 一、准备工作 1、安装 nodemailer yarn add nodemailer 2、打开 QQ…

微信小程序miniprogram_npm目录主包太大如何处理

在使用TDesign开发小程序,miniprogram_npm目录下很多组件,感觉很多组件我都没引用,为什么都在主包来,导致主包很大。如何优化? 在使用npm构建后生成的miniprogram_npm目录里,有所有TDesign组件。但是有很…

04-19 周四 GitHub CI 方案设计

04-19 周四 GitHub CI 方案设计 时间版本修改人描述2024年4月19日14:44:23V0.1宋全恒新建文档2024年4月19日17:22:57V1.0宋全恒完成部署拓扑结构的绘制和文档撰写 简介 需求 由于团队最近把代码托管在GitHub上,为解决推理、应用的自动化CI的需要,调研了…

分享5款PDF编辑软件

PDF编辑不易,有需要的朋友可以试试这5款专业软件,每一个都能直接在PDF文件上编辑,不同的软件对PDF可编辑的范围不同,大家可以按需求选用。 1.edge浏览器 Edge浏览器不仅是浏览网页的得力助手,还悄然成为了轻量级PDF管…

使用Beego创建API项目并自动化文档

最近需要使用Go写一个Web API项目,可以使用Beego与Gin来写此类项目,还是非常方便的,这里就介绍一下使用Beego来创建的Web API项目并自动化文档的方法。 使用Gin创建API项目并自动化文档参见:使用Gin编写Web API项目并自动化文档 …

SpringBoot、JAVA中excel、rtf、doc转PDF

话不多说&#xff0c;直接上干货 // 官方文档的要求 无需理会public static boolean getLicense() {boolean result false;try {String s "<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Wo…

记录下搭高可用集群中Hadoop的几个配置

不断补充中... DataNode的配置&#xff1a; 假设我有5台服务器&#xff0c;分别是hadoop100-104&#xff0c;我现在需要在100和101上配置NameNode&#xff0c;在102-104上配DataNode&#xff0c;我需要在我的workers文件中增加如下内容 [atguiguhadoop102 hadoop]$ vim /opt…

【网络原理】IP协议详解

一.与IP协议相关的基本概念 IP协议&#xff0c;即网际互连协议&#xff08;Internet Protocol&#xff09;&#xff0c;是TCP/IP体系中的核心网络层协议。 网络层IP协议解决的问题 数据传输的过程中,不是直接进行的传输,而是经过层层的封装和分用的过程才能到达对端. IP协议主…

C++五法则

默认赋值 默认构造 移动构造 移动赋值 析构 右值、右值引用 右值引用&#xff1a;某些涉及复制大量值的操作可通过简单地复制指向这些值的指针来实现。 type && name —— 函数入参指定右值引用参数 左值转右值&#xff1a;std::move() void helper(std::strin…

c++ 查看线程状态

在C标准库中&#xff0c;std::thread类并没有直接提供查询线程状态的方法。std::thread类提供了创建线程、等待线程结束&#xff08;join()&#xff09;或分离线程&#xff08;detach()&#xff09;的接口&#xff0c;但并没有提供一个函数来检查线程是否仍在运行、是否阻塞、是…

VLM与基础分割模型的联合使用

最近做的项目里有涉及大模型&#xff0c;里面有一部分的功能是&#xff1a; 将图片输入VLM(视觉语言模型&#xff0c;我使用的是llava)&#xff0c;询问图中最显著的物体&#xff0c;将其给出的答案作为基础分割模型&#xff08;我使用的是Grounded-SAM&#xff09;的text prom…

corefBERT论文阅读

CorefBERT是清华大学团队发表的&#xff0c;继SpanBERT之后另一针对共指消解的BERT模型。共指消解任务对于文本理解、智能问答等其他NLP子任务起到至关重要的作用。 为了提高语言模型的共指推理能力&#xff0c;一个简单的解决方案是使用有监督的共指解析数据在bert等模型进行…

为什么电子商务安全是速度和保护之间的平衡行为

微信搜索关注公众号网络研究观&#xff0c;获取更多信息。 电子商务世界是一把双刃剑。虽然它为企业和消费者提供了便利和可访问性&#xff0c;但它也为网络犯罪分子提供了诱人的目标。在这个不断变化的环境中&#xff0c;优先考虑安全不再是一种选择&#xff1b;而是一种选择&…

Navicat for MySQL Mac:数据库管理与开发的理想工具

Navicat for MySQL Mac是一款功能强大的数据库管理与开发工具&#xff0c;专为Mac用户设计&#xff0c;旨在提供高效、便捷的数据库操作体验。 它支持创建、管理和维护MySQL和MariaDB数据库&#xff0c;通过直观的图形界面&#xff0c;用户可以轻松进行数据库连接、查询、编辑和…

JMeter的使用

一、 1、优点&#xff1a; &#xff08;1&#xff09;开源 &#xff08;2&#xff09;跨平台 &#xff08;3&#xff09;支持多协议 2、缺点 &#xff08;1&#xff09;不支持ip欺骗 &#xff08;2&#xff09;使用JMeter无法验证JS程序&#xff0c;也无法验证页面UI 3…

MySQL没有初始化配置文件设置属性

情况描述 安装mysql的时候&#xff0c;为了速度&#xff0c;并没有配置my.ini或者my.cnf文件&#xff0c;数据库因为断电&#xff0c;导致数据都看不见了&#xff0c;一直提示不存在&#xff0c;这时候需要修改配置文件&#xff0c;将innodb_force_recovery设置为0到6的值&…

Embeddings原理、使用方法、优缺点、案例以及注意事项

Embeddings是一种将高维数据映射到低维空间的技术&#xff0c;常用于处理自然语言处理&#xff08;NLP&#xff09;和计算机视觉&#xff08;CV&#xff09;任务。Embeddings可以将复杂的高维数据转换为低维稠密向量&#xff0c;使得数据可以更容易地进行处理和分析。本文将介绍…

Go 语言(三)【面向对象编程】

1、OOP 首先&#xff0c;Go 语言并不是面向对象的语言&#xff0c;只是可以通过一些方法来模拟面向对象。 1.1、封装 Go 语言是通过结构体&#xff08;struct&#xff09;来实现封装的。 1.2、继承 继承主要由下面这三种方式实现&#xff1a; 1.2.1、嵌套匿名字段 //Add…

docker部署常用工具

1.创建mysql docker run -p 3306:3306 --name mysql -v /home/mysql/conf:/etc/mysql/mysql.conf.d -v /home/mysql/log:/var/log/ -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD2022qwer -d mysql:5.7 而后再执行升级&#xff1a; docker update --restar…

TypeScript学习日志-第二十二天(Mixins混入)

Mixins混入 一、对象混入 合并 当我们有两个或多个对象的时候&#xff0c;如何将这两个对象合并&#xff0c;如图&#xff1a; interface A {name:string } interface B {age:number } let a:A {name:小明 } let b:B {age:10 } // 1.扩展运算符 浅拷贝 返回新的类型 let c…