pyechart 实现 地区分布

Posted on 2026-03-25 11:48  打杂滴  阅读(5)  评论(0)    收藏  举报
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()
 

image

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3