厉害了!用 Python 制作出来的地球仪!

发布时间:2025-05-23 11:24:50 作者:益华网络 来源:undefined 浏览量(0) 点赞(0)
摘要:文 |潮汐 来源:Python 技术「ID: pythonall」 Python 功能真的很强,强大到让人吃惊,它能做的事囊括爬虫、数据分析、数据可视化、游戏等等各方面,这些功能在实际的使用中应用广泛,开发程序讲

文 | 潮汐

来源:Python 技术「ID: pythonall」

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

写在前面的话:在之前的文章 Python 图表利器 pyecharts 中有介绍了 pyecharts 的安装及使用,详细教程请到 官网 学习

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

盛宴1-2D世界地图

先来个 2D 的瞅瞅~

实现代码如下:

from pyecharts import options as optsfrom pyecharts.charts import Mapfrom pyecharts.faker import Fakerc = (    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 呈现:

实现代码如下:

from pyecharts import options as optsfrom pyecharts.charts import Map3Dfrom pyecharts.globals import ChartTypec = (    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-贵州地图

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

代码实现如下:

# 写入省份内各地区经纬度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-地球村实现

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

实现代码如下:

import pyecharts.options as optsfrom pyecharts.charts import MapGlobefrom pyecharts.faker import POPULATIONdata = [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"))

总结

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

参考

[1]http://gallery.pyecharts.org/#/Map3D/

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!