地图绘制
# 导入 Map 类,注意这是 Pyecharts 旧版本的用法
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts, LabelOpts
# 准备地图对象和数据
# 初始化 Map 对象
map = Map()
# 定义要展示在地图上的数据,这里使用了城市和对应的数值
data = [("北京省", 99),
("上海省", 199),
("湖南省", 299), # 注意:这里应该使用具体的城市,比如"长沙市",但在这个示例中我们假设它指的是省份
("台湾省", 199), # 对于台湾,可能需要特殊的地图数据支持
("安徽省", 299),
("广东省", 399),
("湖北省", 599),
]
# 添加地图数据和配置项
# 使用 add 方法添加数据到地图,指定地图类型为 "china"(中国地图)
# 同时设置标签不显示
map.add("测试地图", data, "china", label_opts=LabelOpts(is_show=False))
# 设置全局配置项,包括视觉映射配置项
# visualmap_opts 定义了视觉映射的配置,包括是否显示、是否分段以及分段的具体配置
map.set_global_opts(
visualmap_opts=VisualMapOpts(
is_show=True, # 是否显示视觉映射配置(颜色条)
is_piecewise=True, # 是否使用分段颜色
pieces=[ # 分段的具体配置
{"min": 1, "max": 9, "label": "1-9人", "color": "#CCFFF"}, # 数值在 1-9 范围内的使用这种颜色
{"min": 10, "max": 99, "label": "10-99人", "color": "#FFFF99"},
{"min": 100, "max": 499, "label": "99-499人", "color": "#FF9966"},
{"min": 500, "max": 999, "label": "500-999人", "color": "#FF6666"},
{"min": 1000, "label": "1000人以上", "color": "#CC3333"}, # 没有指定 max 表示无上限
]
),
)
# 渲染图表到 HTML 文件
map.render("03.html")
将代码中的map.add("测试地图", data, "china")加上 label_opts=LabelOpts(is_show=False)
可以隐藏省名。(要导包from pyecharts.options import LabelOpts)
map.add("测试地图", data,"china",label_opts=LabelOpts(is_show=False))
LabelOpts 类提供了许多参数来定制标签的外观和行为
●is_show:是否显示标签,默认为 True。
●position:标签的位置,如 'top'、'left'、'right'、'bottom'、'inside' 等。
●formatter:标签的格式化函数或字符串模板,用于定义标签的显示内容。
●color:标签的颜色。
●font_size:标签的字体大小。
●font_weight:标签的字体粗细。
图表标签设计代码
from pyecharts.charts import Map from pyecharts import options as opts from pyecharts.options import LabelOpts # 准备地图对象和数据 data = [("北京省", 99), ("上海省", 199), ("广东省", 399), ("湖北省", 599)] # 初始化地图对象 m = ( Map() .add("测试地图", data, "china") .set_global_opts( title_opts=opts.TitleOpts(title="测试地图标题"), visualmap_opts=opts.VisualMapOpts(is_show=True, is_piecewise=True), # 设置视觉映射配置 ) .set_series_opts( label_opts=LabelOpts( is_show=True, # 是否显示标签 position="right", # 标签位置 formatter="{b}: {c}", # 格式化字符串模板,{b} 表示名称,{c} 表示值 color="red", # 标签颜色 font_size=14, # 字体大小 font_weight="bold" # 字体粗细 ), ) ) # 渲染图表 m.render("02.html")