一、pyecharts 简介
pyecharts 是一个基于 Echarts 的 Python 图表库,可以用于制作各种类型的图表,包括 3D 地图。其 Map3D 模块专门用于绘制 3D 地图,支持中国、世界以及自定义 geoJSON 地图的可视化。绑定附上完整资源供读者参考学习!
二、安装与环境准备
首先,确保安装了 pyecharts 库:
bash
pip install pyecharts
安装完成后,可以开始使用 Map3D 模块。
三、常见操作示例
1. 北京市 3D 地图
以下是绘制海口市 3D 地图的示例代码:
Python示例代码
from pyecharts.charts import Map3D
from pyecharts import options as opts
# 创建 3D 地图实例
map3d = Map3D()
# 添加北京市地图
map3d.add_schema(
maptype="北京", # 确保使用正确的 maptype
itemstyle_opts=opts.ItemStyleOpts(
color="#4e79a7",
opacity=0.8,
border_width=0.5,
border_color="#333",
),
)
# 添加数据
data = [("北京市", 100)]
map3d.add(
series_name="北京市",
data_pair=data,
label_opts=opts.LabelOpts(is_show=True),
)
# 设置全局选项
map3d.set_global_opts(
title_opts=opts.TitleOpts(title="北京市 3D 地图"),
visualmap_opts=opts.VisualMapOpts(is_show=True),
)
# 渲染地图
map3d.render("beijing_3D_map.html")
运行后会生成一个 HTML 文件,打开即可查看 3D 地图效果。
效果展示
2. 中国 3D 地图
以下是绘制中国 3D 地图的示例代码:
Python示例代码
from pyecharts.charts import Map3D
from pyecharts import options as opts
# 创建 3D 地图实例
map3d = Map3D()
# 添加中国地图
map3d.add_schema(
maptype="china",
itemstyle_opts=opts.ItemStyleOpts(
color="#4e79a7",
opacity=0.8,
border_width=0.5,
border_color="#333",
),
)
# 添加数据
data = [("北京市", 100), ("上海市", 80), ("广州市", 120)]
map3d.add(
series_name="中国 3D 地图",
data_pair=data,
label_opts=opts.LabelOpts(is_show=True),
)
# 设置全局选项
map3d.set_global_opts(
title_opts=opts.TitleOpts(title="中国 3D 地图"),
visualmap_opts=opts.VisualMapOpts(is_show=True),
)
# 渲染地图
map3d.render("china_3d_map.html")
运行后生成的 HTML 文件可以查看中国 3D 地图。
效果展示
四、高级示例:地球 3D 展示
以下是实现地球 3D 展示的示例代码:
Python示例代码
from pyecharts.charts import Map3D
from pyecharts import options as opts
# 创建 3D 地图实例
map3d = Map3D()
# 添加地球地图
map3d.add_schema(
maptype="world",
itemstyle_opts=opts.ItemStyleOpts(
color="#4e79a7",
opacity=0.8,
border_width=0.5,
border_color="#333",
),
)
# 添加数据
data = [("China", 100), ("USA", 80), ("Japan", 60)]
map3d.add(
series_name="地球 3D 地图",
data_pair=data,
label_opts=opts.LabelOpts(is_show=True),
)
# 设置全局选项
map3d.set_global_opts(
title_opts=opts.TitleOpts(title="地球 3D 地图"),
visualmap_opts=opts.VisualMapOpts(is_show=True),
)
# 渲染地图
map3d.render("earth_3d_map.html")
运行后生成的 HTML 文件可以查看地球 3D 地图。
效果展示
五、补充实例
1. 带有标记点的 3D 地图
Python示例代码
from pyecharts.charts import Map3D
from pyecharts import options as opts
# 创建 3D 地图实例
map3d = Map3D()
# 添加中国地图
map3d.add_schema(
maptype="china",
itemstyle_opts=opts.ItemStyleOpts(
color="#4e79a7",
opacity=0.8,
border_width=0.5,
border_color="#333",
),
)
# 添加数据和标记点
data = [
("北京市", 100),
("上海市", 80),
("广州市", 120),
("深圳市", 90),
]
map3d.add(
series_name="中国 3D 地图",
data_pair=data,
label_opts=opts.LabelOpts(is_show=True),
)
# 添加标记点
map3d.add(
series_name="标记点",
data_pair=[("北京市", 100)],
label_opts=opts.LabelOpts(is_show=True, position="top"),
)
# 设置全局选项
map3d.set_global_opts(
title_opts=opts.TitleOpts(title="带有标记点的 3D 地图"),
visualmap_opts=opts.VisualMapOpts(is_show=True),
)
# 渲染地图
map3d.render("china_3d_map_with_markers.html")
效果展示
2. 动态视觉效果的 3D 地图
Python示例代码
from pyecharts.charts import Map3D
from pyecharts import options as opts
# 创建 3D 地图实例
map3d = Map3D()
# 添加中国地图
map3d.add_schema(
maptype="china",
itemstyle_opts=opts.ItemStyleOpts(
color="#4e79a7",
opacity=0.8,
border_width=0.5,
border_color="#333",
),
)
# 添加数据
data = [
("北京市", 100),
("上海市", 80),
("广州市", 120),
("深圳市", 90),
]
map3d.add(
series_name="中国 3D 地图",
data_pair=data,
label_opts=opts.LabelOpts(is_show=True),
)
# 设置视觉映射
map3d.set_global_opts(
title_opts=opts.TitleOpts(title="动态视觉效果的 3D 地图"),
visualmap_opts=opts.VisualMapOpts(
is_show=True,
min_=0,
max_=200,
orient="vertical",
range_color=["#525252", "#737373", "#969696", "#BDBDBD", "#D9D9D9"],
),
)
# 渲染地图
map3d.render("china_3d_map_with_dynamic_visual.html")
效果展示
3. 自定义样式和颜色的 3D 地图
Python示例代码
from pyecharts.charts import Map3D
from pyecharts import options as opts
# 创建 3D 地图实例
map3d = Map3D()
# 添加中国地图
map3d.add_schema(
maptype="china",
itemstyle_opts=opts.ItemStyleOpts(
color="#6959CD",
opacity=0.9,
border_width=0.8,
border_color="#4B0082",
),
)
# 添加数据
data = [
("北京市", 100),
("上海市", 80),
("广州市", 120),
("深圳市", 90),
]
map3d.add(
series_name="中国 3D 地图",
data_pair=data,
label_opts=opts.LabelOpts(is_show=True, color="#FFFFFF"),
)
# 设置全局选项
map3d.set_global_opts(
title_opts=opts.TitleOpts(title="自定义样式和颜色的 3D 地图"),
visualmap_opts=opts.VisualMapOpts(is_show=True),
)
# 渲染地图
map3d.render("china_3d_map_custom_style.html")
效果展示
4. 带有动画效果的 3D 地球
Python示例代码
import pyecharts.options as opts
from pyecharts.charts import MapGlobe
from pyecharts.globals import GeoType
# 自定义数据集(国家名称和人口数据)
custom_population = [
("China", 1444216107),
("India", 1380004385),
("USA", 331002651),
("Indonesia", 273523615),
("Pakistan", 220892340),
("Brazil", 212559417),
("Nigeria", 206139589),
("Bangladesh", 166303498),
("Russia", 145934462),
("Mexico", 128932753),
]
# 获取人口数据的最小值和最大值
data = [x for _, x in custom_population]
low, high = min(data), max(data)
# 创建 3D 地球实例
c = (
MapGlobe(init_opts=opts.InitOpts(width="1400px", height="700px"))
.add_schema()
.add(
maptype="world",
series_name="World Population",
data_pair=custom_population,
is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
min_=low,
max_=high,
range_text=["max", "min"],
is_calculable=True,
range_color=["lightskyblue", "yellow", "orangered"],
)
)
.render("earth_3d_globe.html")
)
效果展示
六、函数参数总结
以下是 pyecharts Map3D 模块常用函数及其参数的总结:
函数名 | 参数说明 |
---|---|
add_schema |
设置地图的类型(如 "china"、"world")和样式选项(如颜色、透明度等) |
add |
添加数据对,包括系列名称和数据对(如城市名称和值) |
set_global_opts |
设置全局选项,如标题、视觉映射等 |
render |
渲染地图为 HTML 文件 |
七、总结
通过 pyecharts 的 Map3D 模块,我们可以轻松实现各种 3D 地图的绘制,无论是城市地图、国家地图还是地球地图,都能通过简单的代码实现。希望本文能激发你的动手欲望,快来尝试吧!资源绑定附上完整资源供读者参考学习!