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

2024-05-07 07:52

本文主要是介绍pyecharts绘制世界动态轨迹图(v0.5.X与v1.X版本对比),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、问题引入

在这里插入图片描述

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是互不兼容的,自定义经纬度的方式对比结果如下。

二、pyecharts=0.5.X

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')

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

三、pyecharts=1.X

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

这篇关于pyecharts绘制世界动态轨迹图(v0.5.X与v1.X版本对比)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966767

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

揭秘世界上那些同时横跨两大洲的国家

我们在《世界人口过亿的一级行政区分布》盘点全球是那些人口过亿的一级行政区。 现在我们介绍五个横跨两州的国家,并整理七大洲和这些国家的KML矢量数据分析分享给大家,如果你需要这些数据,请在文末查看领取方式。 世界上横跨两大洲的国家 地球被分为七个大洲分别是亚洲、欧洲、北美洲、南美洲、非洲、大洋洲和南极洲。 七大洲示意图 其中,南极洲是无人居住的大陆,而其他六个大洲则孕育了众多国家和

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

轨迹规划-B样条

B样条究竟是干啥的?白话就是给出一堆点,用样条的方式,给这些点连接起来,并保证丝滑的。 同时B样条分为准均匀和非均匀,以下为准均匀为例。 参考链接1:https://zhuanlan.zhihu.com/p/50626506https://zhuanlan.zhihu.com/p/50626506 参考链接2: https://zhuanlan.zhihu.com/p/536470972h

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87