用 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之集合的关系
Sep 24 Python
python实现根据ip地址反向查找主机名称的方法
Apr 29 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
python K近邻算法的kd树实现
Sep 06 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
Django Rest framework之认证的实现代码
Dec 17 Python
Python字符串中添加、插入特定字符的方法
Sep 10 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
Python使用uuid库生成唯一标识ID
Feb 12 Python
Python requests获取网页常用方法解析
Feb 20 Python
django中cookiecutter的使用教程
Dec 03 Python
python数字图像处理:图像简单滤波
Jun 28 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 反向排序和随机排序代码
2010/06/30 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
Python实现数值积分方式
2019/11/20 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
跟单业务员岗位职责
2014/03/08 职场文书
中华魂演讲稿
2014/05/13 职场文书
单位证明范文
2015/06/18 职场文书
男生贾里读书笔记
2015/06/30 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
初一英语教学反思
2016/02/15 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android