用 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中使用asyncio 封装文件读写
Sep 11 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
在python中pandas的series合并方法
Nov 12 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
python按照多个条件排序的方法
Feb 08 Python
Python 下载及安装详细步骤
Nov 04 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
NumPy排序的实现
Jan 21 Python
关于python中的xpath解析定位
Mar 06 Python
Python多线程正确用法实例解析
May 30 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
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
PHP递归的三种常用方式
2019/02/28 PHP
破解Session cookie的方法
2006/07/28 Javascript
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
js+css在交互上的应用
2010/07/18 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
js实现圆盘记速表
2015/08/03 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
python统计文本文件内单词数量的方法
2015/05/30 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
大学生先进事迹材料
2014/02/16 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
高中运动会前导词
2015/07/20 职场文书
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript