用 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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
Python编程中flask的简介与简单使用
Dec 28 Python
python三引号输出方法
Feb 27 Python
Python解析命令行读取参数之argparse模块
Jul 26 Python
基于 Django 的手机管理系统实现过程详解
Aug 16 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
python如何写try语句
Jul 14 Python
python基于openpyxl生成excel文件
Dec 23 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
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
npm的lock机制解析
2019/06/20 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
python 计算两个列表的相关系数的实现
2019/08/29 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
几道PHP的面试题
2012/05/19 面试题
优秀医生事迹材料
2014/02/12 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
贷款承诺书范文
2014/05/19 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android