Pyecharts库的学习历程:绘制地图

10 min read Page Views

1.绘制世界地图

1.1.原始数据

2022年北京冬奥会奖牌榜 数据如下所示:

洲	国	金牌数	银牌数	铜牌数	奖牌数
欧洲	挪威	16	8	13	37
欧洲	德国	12	10	5	27
亚洲	中国	9	4	2	15
北美洲	美国	8	10	7	25
欧洲	瑞典	8	5	5	18
欧洲	荷兰	8	5	4	17
欧洲	奥地利	7	7	4	18
欧洲	瑞士	7	2	5	14
欧洲	俄罗斯奥委会	6	12	14	32
欧洲	法国	5	7	2	14
北美洲	加拿大	4	8	14	26
亚洲	日本	3	6	9	18
欧洲	意大利	2	7	8	17
亚洲	韩国	2	5	2	9
欧洲	斯洛文尼亚	2	3	2	7
欧洲	芬兰	2	2	4	8
大洋洲	新西兰	2	1	0	3
大洋洲	澳大利亚	1	2	1	4
欧洲	英国	1	1	0	2
欧洲	匈牙利	1	0	2	3
欧洲	比利时	1	0	1	2
欧洲	捷克	1	0	1	2
欧洲	斯洛伐克	1	0	1	2
欧洲	白俄罗斯	0	2	0	2
欧洲	西班牙	0	1	0	1
欧洲	乌克兰	0	1	0	1
欧洲	爱沙尼亚	0	0	1	1
欧洲	拉脱维亚	0	0	1	1
欧洲	波兰	0	0	1	1

1.2.python程序

from pyecharts import options as opts
from pyecharts.charts import Map

"""
pyecharts: 2.0.8
"""

data = [['Norway', 16], ['Germany', 12], ['China', 9], ['United States', 8], ['Sweden', 8], ['Netherlands', 8],
        ['Austria', 7], ['Switzerland', 7], ['Russia', 6], ['France', 5], ['Canada', 4], ['Japan', 3], ['Italy', 2],
        ['South Korea', 2], ['Slovenia', 2], ['Finland', 2], ['New Zealand', 2], ['Australia', 1], ['Britain', 1],
        ['Hungary', 1], ['Belgium', 1], ['Czekh', 1], ['Slovakia', 1]]

name_map = {'Norway': '挪威', 'Germany': '德国', 'China': '中国', 'United States': '美国', 'Sweden': '瑞典',
            'Netherlands': '荷兰', 'Austria': '奥地利', 'Switzerland': '瑞士', 'Russia': '俄罗斯奥委会',
            'France': '法国', 'Canada': '加拿大', 'Japan': '日本', 'Italy': '意大利', 'South Korea': '韩国',
            'Slovenia': '斯洛文尼亚', 'Finland': '芬兰', 'New Zealand': '新西兰', 'Australia': '澳大利亚',
            'Britain': '英国', 'Hungary': '匈牙利', 'Belgium': '比利时', 'Czekh': '捷克', 'Slovakia': '斯洛伐克'}

converted_data = [[name_map[name], value] for name, value in data]
print(converted_data)

map = Map()
map.add("金牌数", data_pair=converted_data, maptype="world", zoom=1, is_map_symbol_show=False, name_map=name_map)
map.set_series_opts(
    label_opts=opts.LabelOpts(
        is_show=False, formatter='{b}'
    )
)
map.set_global_opts(title_opts=opts.TitleOpts(title="2022年北京冬奥会金牌榜"),
                    visualmap_opts=opts.VisualMapOpts(max_=max([x[1] for x in data]), is_piecewise=True,
                                                      range_color=["lightskyblue", "yellow", "orangered"]))
map.render('北京冬奥会奖牌榜.html')

1.3.效果展示

图片

2.绘制中国地图

2.1.原始数据

中国各地区2024年常住人口 数据如下所示:

地区	2024北京市	2183
天津市	1364
河北省	7378
山西省	3446
内蒙古自治区	2388
辽宁省	4155
吉林省	2317
黑龙江省	3029
上海市	2480
江苏省	8526
浙江省	6670
安徽省	6123
福建省	4193
江西省	4502
山东省	10080
河南省	9785
湖北省	5834
湖南省	6539
广东省	12780
广西壮族自治区	5013
海南省	1048
重庆市	3190
四川省	8364
贵州省	3860
云南省	4655
西藏自治区	370
陕西省	3953
甘肃省	2458
青海省	593
宁夏回族自治区	729
新疆维吾尔自治区	2623

2.2.python程序

import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts

"""
pandas: 1.5.3
pyecharts: 2.0.8
"""

# 地区不能有空格,否则无法识别数据并填充地图颜色
data = pd.read_excel(io='中国各地区年末常住人口.xlsx', sheet_name='Sheet1', usecols=['地区', '2024年'])
data = data[['地区', '2024年']].values.tolist()

map = Map(init_opts=opts.InitOpts(width="1200px", height='600px'))
map.add('中国各地区2024年常住人口', data_pair=data, maptype='china', is_map_symbol_show=False)
map.set_series_opts(label_opts=opts.LabelOpts(is_show=True))
map.set_global_opts(title_opts=opts.TitleOpts(title='中国各地区2024年常住人口分布图(未含港澳台)',
                                              subtitle='数据来源:国家统计局\n\n单位:万人'),
                    visualmap_opts=opts.VisualMapOpts(max_=max([x[1] for x in data]), is_piecewise=True,
                                                      range_color=['lightskyblue', 'yellow', 'orangered']))
map.render('中国各地区2024年常住人口.html')

2.3.效果展示

图片

3.绘制省份地图

3.1.原始数据

广东省各地区2024年GDP 数据如下所示:

地区	GDP
深圳市	36801.87
广州市	31032.5
佛山市	13361.9
东莞市	12282.15
惠州市	6136.39
珠海市	4479.06
江门市	4210.18
中山市	4143.25
茂名市	4072.04
湛江市	3839.93
汕头市	3167.97
肇庆市	2917.85
揭阳市	2529.7
清远市	2253.07
韶关市	1647.56
阳江市	1629.58
梅州市	1508.18
汕尾市	1500.89
河源市	1407.72
潮州市	1402.83
云浮市	1309.19

3.2.python程序

import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts

"""
pandas: 1.5.3
pyecharts: 2.0.8
"""

data = pd.read_excel(io='广东各地区2024年GDP数据.xlsx', sheet_name='Sheet1')
city = data.iloc[:, 0]
gdp = data.iloc[:, 1]

xy = [i for i in zip(city, gdp)]

map = Map(init_opts=opts.InitOpts(width="1200px", height='600px'))
map.add(series_name='广东各地区2024年GDP数据', data_pair=xy, maptype='广东', is_map_symbol_show=False)
map.set_series_opts(label_opts=opts.LabelOpts(is_show=True))
map.set_global_opts(title_opts=opts.TitleOpts(title='广东各地区2024年GDP分布图', subtitle='数据来源:广东统计年鉴\n\n单位:亿元'),
                    visualmap_opts=opts.VisualMapOpts(max_=max([x[1] for x in xy]), is_piecewise=True,
                                                      range_color=['lightskyblue', 'yellow', 'orangered']))
map.render('广东各地区2024年GDP分布图.html')

3.3.效果展示

图片

Last updated on 2025-05-19