用 Python 制作地球仪的方法


Posted in Python onApril 24, 2020

Python 功能真的很强,强大到让人吃惊,它能做的事囊括爬虫、数据分析、数据可视化、游戏等等各方面,这些功能在实际的使用中应用广泛,开发程序讲究页面的美观与炫酷效果, 今天的文章将给各位读者朋友们带来不一样的视觉盛宴,感兴趣的朋友欢迎一起尝试。

写在前面的话:在之前的文章Python中pyecharts安装及安装失败的解决方法 中有介绍了 pyecharts 的安装及使用,详细教程请到官网 学习

pyecharts 功能很强大,只需要导入相应的模块就配置相应的选项即可生成对应的超文本文件,使用浏览器访问即可!具体实例请见下文

盛宴1-2D世界地图

先来个 2D 的瞅瞅~

用 Python 制作地球仪的方法

实现代码如下:

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker

c = (
 Map(init_opts=opts.InitOpts(width='1500px', height='1200px',bg_color='#E0EEEE'))
 # 加载世界地图实例
 .add("世界地图", [list(z) for z in zip(Faker.country, Faker.values())], "world")
 # 不显示地图标志
 .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
 .set_global_opts(
 # 配置项标题设置
 title_opts=opts.TitleOpts(title="世界地图示例"),
 visualmap_opts=opts.VisualMapOpts(max_=200)
 )
 # 生成超文本文件
 .render("world_map.html")
)

盛宴2-中国3D地图

通过导入 Map3D 等实现中国地图的 3D 呈现:

用 Python 制作地球仪的方法

实现代码如下:

from pyecharts import options as opts
from pyecharts.charts import Map3D
from pyecharts.globals import ChartType

c = (
 Map3D(init_opts=opts.InitOpts(width='1300px', height='1300px',bg_color='#EBEBEB'))

 .add_schema(
 itemstyle_opts=opts.ItemStyleOpts(
 color="#CDBA96",
 opacity=1,
 border_width=0.8,
 border_color="rgb(62,215,213)",
 ),
 map3d_label=opts.Map3DLabelOpts(
 is_show=True,
 text_style=opts.TextStyleOpts(
 color="#104E8B", font_size=16, background_color="rgba(0,0,0,0)"
 ),
 ),
 emphasis_label_opts=opts.LabelOpts(is_show=True),
 light_opts=opts.Map3DLightOpts(
 main_color="#FFEBCD",
 main_intensity=1.2,
 is_main_shadow=False,
 main_alpha=55,
 main_beta=10,
 ambient_intensity=0.3,
 ),
 )
 .add(series_name="", data_pair="", maptype=ChartType.MAP3D)
 # 全局设置地图属性
 .set_global_opts(
 title_opts=opts.TitleOpts(title="全国行政区划地图"),
 visualmap_opts=opts.VisualMapOpts(is_show=False),
 tooltip_opts=opts.TooltipOpts(is_show=True),
 )
 .render("map3d_china_base.html")
)

盛宴3-贵州地图

现在用另一种方式来实现我家乡的地图,一起来一睹为快~

用 Python 制作地球仪的方法

代码实现如下:

# 写入省份内各地区经纬度
example_data = [
 [[106.70722,26.59820, 1000],[106.63024, 26.64702, 1000]],
 [[104.83023, 26.59336], [106.92723, 27.72545]],
 [[105.30504, 27.29847], [107.52034, 26.29322]],
 [[107.89868, 26.52881], [104.948571, 25.077502]],
 [[105.9462, 26.25367], [109.18099, 27.69066]],
]
# 添加 3D 地图
c = (
 Map3D(init_opts=opts.InitOpts(width='1200px', height='1200px'))
 .add_schema(
 maptype="贵州",
 itemstyle_opts=opts.ItemStyleOpts(
 color="rgb(5,101,123)",
 opacity=1,
 border_width=0.8,
 border_color="rgb(62,215,213)",
 ),
 light_opts=opts.Map3DLightOpts(
 main_color="#fff",
 main_intensity=1.2,
 is_main_shadow=True,
 main_alpha=55,
 main_beta=10,
 ambient_intensity=0.3,
 ),
 view_control_opts=opts.Map3DViewControlOpts(center=[-10, 0, 10]),
 post_effect_opts=opts.Map3DPostEffectOpts(is_enable=True),

 )
 .add(
 series_name="",
 data_pair=example_data,
 type_=ChartType.LINES3D,
 effect=opts.Lines3DEffectOpts(
 is_show=True,
 period=4,
 trail_width=3,
 trail_length=0.5,
 trail_color="#f00",
 trail_opacity=1,
 ),
 label_opts=opts.LabelOpts(is_show=True),
 )
 .set_global_opts(title_opts=opts.TitleOpts(title="Map3D-GuiZhou3D"))
 .render("guizhou_map_3d.html")
)

盛宴4-地球村实现

一起来看看旋转的地球吧^^

用 Python 制作地球仪的方法

实现代码如下:

import pyecharts.options as opts
from pyecharts.charts import MapGlobe
from pyecharts.faker import POPULATION


data = [x for _, x in POPULATION[1:]]
low, high = min(data), max(data)
c = (
 MapGlobe(init_opts=opts.InitOpts(width='1000px', height='1000px',bg_color='#FFFAFA',))
 .add_schema()
 .add(
 maptype="world",
 series_name="World Population",
 data_pair=POPULATION[1:],
 is_map_symbol_show=True,
 label_opts=opts.LabelOpts(is_show=True),
 )
 .set_global_opts(
 title_opts=opts.TitleOpts(title="3D 地球示例"),
 # 设置地球属性
 visualmap_opts=opts.VisualMapOpts(
 min_=low,
 max_=high,
 range_text=["max", "min"],
 is_calculable=True,
 range_color=["lightskyblue", "yellow", "orangered"],
 )
 )
 .render("world_map_3d.html")
)

总结

希望今天的分享能给大家带来不一样的视觉享受,同时伙伴们也别忘了要多多实践。 实践是检验真理的唯一标准!

参考

http://gallery.pyecharts.org/#/Map3D/ 

示例代码 (https://github.com/JustDoPython/python-examples/tree/master/chaoxi/Earth_view )

到此这篇关于用 Python 制作地球仪的方法的文章就介绍到这了,更多相关python 地球仪内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python代码的打包与发布详解
Jul 30 Python
在Python下尝试多线程编程
Apr 28 Python
举例讲解Python设计模式编程中的访问者与观察者模式
Jan 26 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
Dec 07 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
基于Pygame实现简单的贪吃蛇游戏
Dec 06 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 #Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 #Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 #Python
python实现五子棋程序
Apr 24 #Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 #Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 #Python
不到20行实现Python代码即可制作精美证件照
Apr 24 #Python
You might like
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
php计算数组不为空元素个数的方法
2014/01/27 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
简单的php购物车代码
2020/06/05 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
Python兔子毒药问题实例分析
2015/03/05 Python
在Python的Django框架中包装视图函数
2015/07/20 Python
python开发中range()函数用法实例分析
2015/11/12 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
几个SQL的面试题
2014/03/08 面试题
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
物流仓管员岗位职责
2015/04/01 职场文书
同意落户证明
2015/06/19 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
学校教师培训工作总结
2015/10/14 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏