from pyecharts import options as opts
from pyecharts.charts import Map
def get_population_data():
# 示例数据
population_data = [
["北京市", 2188.6],
["天津市", 1386.6],
["河北省", 7461.0],
["山西省", 3491.6],
["内蒙古自治区", 2404.9],
["辽宁省", 4259.1],
["吉林省", 2407.3],
["黑龙江省", 3185.0],
["上海市", 2428.1],
["江苏省", 8474.8],
["浙江省", 6456.8],
["安徽省", 6102.7],
["福建省", 4154.0],
["江西省", 4518.9],
["山东省", 10152.7],
["河南省", 9936.6],
["湖北省", 5775.3],
["湖南省", 6644.5],
["广东省", 12601.3],
["广西壮族自治区", 5012.7],
["海南省", 1008.1],
["重庆市", 3212.4],
["四川省", 8375.4],
["贵州省", 3856.2],
["云南省", 4720.9],
["西藏自治区", 364.8],
["陕西省", 3952.9],
["甘肃省", 2501.9],
["青海省", 592.4],
["宁夏回族自治区", 720.3],
["新疆维吾尔自治区", 2585.2],
["台湾省", 2354.6],
["香港特别行政区", 747.5],
["澳门特别行政区", 68.3]
]
return population_data
def create_china_population_map():
data = get_population_data()
map_chart = (
Map()
.add(
series_name="人口数量(万人)",
data_pair=data,
maptype="china",
is_roam=False, # 禁止地图缩放拖拽
zoom=1.2 # 初始缩放比例
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="中国各省人口分布图",
subtitle="基于第七次全国人口普查数据",
pos_left="center"
),
visualmap_opts=opts.VisualMapOpts(
is_show=True,
type_="continuous",
min_=0,
max_=13000,
range_color=["#FFFFFF", "#3AA2FF", "#0066CC"],
textstyle_opts=opts.TextStyleOpts(color="#000"),
orient="vertical",
pos_right="5%",
pos_top="middle"
),
tooltip_opts=opts.TooltipOpts(
trigger="item",
formatter="{b}<br/>{a}: {c}万人"
)
)
)
map_chart.render("china_population_distribution.html")
if __name__ == "__main__":
create_china_population_map()

浙公网安备 33010602011771号