用 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 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
Python中操作文件之write()方法的使用教程
May 25 Python
python制作一个桌面便签软件
Aug 09 Python
一文总结学习Python的14张思维导图
Oct 17 Python
python递归实现快速排序
Aug 18 Python
python实现邮件自动发送
Aug 10 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
Sep 24 Python
Python selenium文件上传下载功能代码实例
Apr 13 Python
Opencv求取连通区域重心实例
Jun 04 Python
Python3爬虫发送请求的知识点实例
Jul 30 Python
python如何进行基准测试
Apr 26 Python
你喜欢篮球吗?Python实现篮球游戏
Jun 11 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
php读取xml实例代码
2010/01/28 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
PHP制作万年历
2015/01/07 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
Python3实现从文件中读取指定行的方法
2015/05/22 Python
python中偏函数partial用法实例分析
2015/07/08 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
django的model操作汇整详解
2019/07/26 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
Python爬取某平台短视频的方法
2021/02/08 Python
python3判断IP地址的方法
2021/03/04 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
印度低票价航空公司:GoAir
2017/10/11 全球购物
简历自我评价模版
2014/01/31 职场文书
妇联主席先进事迹
2014/05/18 职场文书
应聘会计求职信
2014/06/11 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
公司管理建议书
2015/09/14 职场文书
早上好问候语大全
2015/11/10 职场文书
python中print格式化输出的问题
2021/04/16 Python
PHP获取学生成绩的方法
2021/11/17 PHP