pyecharts从入门到精通-地图专题Map-世界地图和中国城市地图

  • Post author:
  • Post category:其他




参考

官方文档:

https://pyecharts.org/#/zh-cn/quickstart



Python使用Pyecharts画Geo地图,如何显示具体地点名称



pyecharts世界地图用:国家中英文对照表.xlsx



Map中的地理坐标问题



安装与查看pyecharts

安装pyecharts

pip install pyecharts==2.0.3
# Successfully installed prettytable-3.7.0 pyecharts-2.0.3 simplejson-3.19.1

查看版本

import pyecharts
print(pyecharts.__version__) 
# 2.0.3



地图实现-Geo

pyecharts的地图实现包括:

Geo:地理坐标系

Map:地图

BMap:百度地图

本部分完成Geo地理坐标系实现。



数据集查看

数据为世界人口数据,数据集连接:


Worldometers网站可实时统计全球人口数量



全球人口实时统计数据网站(Worldometers),联合国预计今日全球人口将突破80亿!

在这里插入图片描述



读取数据

import pandas as pd
df = pd.read_excel(r'D:\Users\DELL\Desktop\populationtopAll.xlsx',engine='openpyxl',sheet_name="中文")
df

在这里插入图片描述



生成中文国家名称



国家中文和英文名称字典:

name_map = {‘Singapore Rep.’: ‘新加坡’, ‘Dominican Rep.’: ‘多米尼加’, ‘Palestine’: ‘巴勒斯坦’, ‘Bahamas’: ‘巴哈马’, ‘Timor-Leste’: ‘东帝汶’, ‘Afghanistan’: ‘阿富汗’, ‘Guinea-Bissau’: ‘几内亚比绍’, “Cte d’Ivoire”: ‘科特迪瓦’, ‘Siachen Glacier’: ‘锡亚琴冰川’, “Br. Indian Ocean Ter.”: ‘英属印度洋领土’, ‘Angola’: ‘安哥拉’, ‘Albania’: ‘阿尔巴尼亚’, ‘United Arab Emirates’: ‘阿联酋’, ‘Argentina’: ‘阿根廷’, ‘Armenia’: ‘亚美尼亚’, ‘French Southern and Antarctic Lands’: ‘法属南半球和南极领地’, ‘Australia’: ‘澳大利亚’, ‘Austria’: ‘奥地利’, ‘Azerbaijan’: ‘阿塞拜疆’, ‘Burundi’: ‘布隆迪’, ‘Belgium’: ‘比利时’, ‘Benin’: ‘贝宁’, ‘Burkina Faso’: ‘布基纳法索’, ‘Bangladesh’: ‘孟加拉国’, ‘Bulgaria’: ‘保加利亚’, ‘The Bahamas’: ‘巴哈马’, ‘Bosnia and Herz.’: ‘波斯尼亚和黑塞哥维那’, ‘Belarus’: ‘白俄罗斯’, ‘Belize’: ‘伯利兹’, ‘Bermuda’: ‘百慕大’, ‘Bolivia’: ‘玻利维亚’, ‘Brazil’: ‘巴西’, ‘Brunei’: ‘文莱’, ‘Bhutan’: ‘不丹’, ‘Botswana’: ‘博茨瓦纳’, ‘Central African Rep.’: ‘中非’, ‘Canada’: ‘加拿大’, ‘Switzerland’: ‘瑞士’, ‘Chile’: ‘智利’, ‘China’: ‘中国’, ‘Ivory Coast’: ‘象牙海岸’, ‘Cameroon’: ‘喀麦隆’, ‘Dem. Rep. Congo’: ‘刚果民主共和国’, ‘Congo’: ‘刚果’, ‘Colombia’: ‘哥伦比亚’, ‘Costa Rica’: ‘哥斯达黎加’, ‘Cuba’: ‘古巴’, ‘N. Cyprus’: ‘北塞浦路斯’, ‘Cyprus’: ‘塞浦路斯’, ‘Czech Rep.’: ‘捷克’, ‘Germany’: ‘德国’, ‘Djibouti’: ‘吉布提’, ‘Denmark’: ‘丹麦’, ‘Algeria’: ‘阿尔及利亚’, ‘Ecuador’: ‘厄瓜多尔’, ‘Egypt’: ‘埃及’, ‘Eritrea’: ‘厄立特里亚’, ‘Spain’: ‘西班牙’, ‘Estonia’: ‘爱沙尼亚’, ‘Ethiopia’: ‘埃塞俄比亚’, ‘Finland’: ‘芬兰’, ‘Fiji’: ‘斐’, ‘Falkland Islands’: ‘福克兰群岛’, ‘France’: ‘法国’, ‘Gabon’: ‘加蓬’, ‘United Kingdom’: ‘英国’, ‘Georgia’: ‘格鲁吉亚’, ‘Ghana’: ‘加纳’, ‘Guinea’: ‘几内亚’, ‘Gambia’: ‘冈比亚’, ‘Guinea Bissau’: ‘几内亚比绍’, ‘Eq. Guinea’: ‘赤道几内亚’, ‘Greece’: ‘希腊’, ‘Greenland’: ‘格陵兰’, ‘Guatemala’: ‘危地马拉’, ‘French Guiana’: ‘法属圭亚那’, ‘Guyana’: ‘圭亚那’, ‘Honduras’: ‘洪都拉斯’, ‘Croatia’: ‘克罗地亚’, ‘Haiti’: ‘海地’, ‘Hungary’: ‘匈牙利’, ‘Indonesia’: ‘印度尼西亚’, ‘India’: ‘印度’, ‘Ireland’: ‘爱尔兰’, ‘Iran’: ‘伊朗’, ‘Iraq’: ‘伊拉克’, ‘Iceland’: ‘冰岛’, ‘Israel’: ‘以色列’, ‘Italy’: ‘意大利’, ‘Jamaica’: ‘牙买加’, ‘Jordan’: ‘约旦’, ‘Japan’: ‘日本’, ‘Kazakhstan’: ‘哈萨克斯坦’, ‘Kenya’: ‘肯尼亚’, ‘Kyrgyzstan’: ‘吉尔吉斯斯坦’, ‘Cambodia’: ‘柬埔寨’, ‘Korea’: ‘韩国’, ‘Kosovo’: ‘科索沃’, ‘Kuwait’: ‘科威特’, ‘Lao PDR’: ‘老挝’, ‘Lebanon’: ‘黎巴嫩’, ‘Liberia’: ‘利比里亚’, ‘Libya’: ‘利比亚’, ‘Sri Lanka’: ‘斯里兰卡’, ‘Lesotho’: ‘莱索托’, ‘Lithuania’: ‘立陶宛’, ‘Luxembourg’: ‘卢森堡’, ‘Latvia’: ‘拉脱维亚’, ‘Morocco’: ‘摩洛哥’, ‘Moldova’: ‘摩尔多瓦’, ‘Madagascar’: ‘马达加斯加’, ‘Mexico’: ‘墨西哥’, ‘Macedonia’: ‘马其顿’, ‘Mali’: ‘马里’, ‘Myanmar’: ‘缅甸’, ‘Montenegro’: ‘黑山’, ‘Mongolia’: ‘蒙古’, ‘Mozambique’: ‘莫桑比克’, ‘Mauritania’: ‘毛里塔尼亚’, ‘Malawi’: ‘马拉维’, ‘Malaysia’: ‘马来西亚’, ‘Namibia’: ‘纳米比亚’, ‘New Caledonia’: ‘新喀里多尼亚’, ‘Niger’: ‘尼日尔’, ‘Nigeria’: ‘尼日利亚’, ‘Nicaragua’: ‘尼加拉瓜’, ‘Netherlands’: ‘荷兰’, ‘Norway’: ‘挪威’, ‘Nepal’: ‘尼泊尔’, ‘New Zealand’: ‘新西兰’, ‘Oman’: ‘阿曼’, ‘Pakistan’: ‘巴基斯坦’, ‘Panama’: ‘巴拿马’, ‘Peru’: ‘秘鲁’, ‘Philippines’: ‘菲律宾’, ‘Papua New Guinea’: ‘巴布亚新几内亚’, ‘Poland’: ‘波兰’, ‘Puerto Rico’: ‘波多黎各’, ‘Dem. Rep. Korea’: ‘朝鲜’, ‘Portugal’: ‘葡萄牙’, ‘Paraguay’: ‘巴拉圭’, ‘Qatar’: ‘卡塔尔’, ‘Romania’: ‘罗马尼亚’, ‘Russia’: ‘俄罗斯’, ‘Rwanda’: ‘卢旺达’, ‘W. Sahara’: ‘西撒哈拉’, ‘Saudi Arabia’: ‘沙特阿拉伯’, ‘Sudan’: ‘苏丹’, ‘S. Sudan’: ‘南苏丹’, ‘Senegal’: ‘塞内加尔’, ‘Solomon Is.’: ‘所罗门群岛’, ‘Sierra Leone’: ‘塞拉利昂’, ‘El Salvador’: ‘萨尔瓦多’, ‘Somaliland’: ‘索马里兰’, ‘Somalia’: ‘索马里’, ‘Serbia’: ‘塞尔维亚’, ‘Suriname’: ‘苏里南’, ‘Slovakia’: ‘斯洛伐克’, ‘Slovenia’: ‘斯洛文尼亚’, ‘Sweden’: ‘瑞典’, ‘Swaziland’: ‘斯威士兰’, ‘Syria’: ‘叙利亚’, ‘Chad’: ‘乍得’, ‘Togo’: ‘多哥’, ‘Thailand’: ‘泰国’, ‘Tajikistan’: ‘塔吉克斯坦’, ‘Turkmenistan’: ‘土库曼斯坦’, ‘East Timor’: ‘东帝汶’, ‘Trinidad and Tobago’: ‘特里尼达和多巴哥’, ‘Tunisia’: ‘突尼斯’, ‘Turkey’: ‘土耳其’, ‘Tanzania’: ‘坦桑尼亚’, ‘Uganda’: ‘乌干达’, ‘Ukraine’: ‘乌克兰’, ‘Uruguay’: ‘乌拉圭’, ‘United States’: ‘美国’, ‘Uzbekistan’: ‘乌兹别克斯坦’, ‘Venezuela’: ‘委内瑞拉’, ‘Vietnam’: ‘越南’, ‘Vanuatu’: ‘瓦努阿图’, ‘West Bank’: ‘西岸’, ‘Yemen’: ‘也门’, ‘South Africa’: ‘南非’, ‘Zambia’: ‘赞比亚’, ‘Zimbabwe’: ‘津巴布韦’, ‘Comoros’: ‘科摩罗’}



根据字典,生成国家中文名

df['国家(中文)']=df['国家(英文)'].map(name_map)
print(df.head())
df.info()

在这里插入图片描述

另外,部分字典中国家中文名称和Excel中国家名称不对应,需要修改。否则,这几个国家数值不能正常显示(源代码中已修改)。如:波黑(Excel文件中为全称)、蒙古(Excel文件中为蒙古国)、土库曼斯坦(Excel文件中没有,我们最后一行添加数据0)、刚果民主共和国(Excel文件中为刚果(金))、刚果(Excel文件中为刚果(布)),如果需要修改的话,再单独修改,这里不进行细节处理。



查看没有转换成功的国家中文有哪些

df[df['国家(中文)'].isna()]

在这里插入图片描述



过滤包含中文国家名的数据

df_new_cn = df[~df['国家(中文)'].isna()]
df_new_cn

在这里插入图片描述



可视化人口数据

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

c = (
    Map()
    .add("人口数量", [list(z) for z in zip(df_new_cn['国家(英文)'], df_new_cn['人口数量'])], "world")
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Map-世界地图"),
        visualmap_opts=opts.VisualMapOpts(max_=1500000000),
    )
#     .render("map_world.html")
)
c.render_notebook()

在这里插入图片描述



显示中国城市地图数据

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

print(dir(Faker))
c = (
    Map()
    .add(
        "商家A",
        [list(z) for z in zip(Faker.guangdong_city, Faker.values())],
        #"china-cities",
        '广东',
        label_opts=opts.LabelOpts(is_show=False),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Map-中国地图(带城市)"),
        visualmap_opts=opts.VisualMapOpts(),
    )
#     .render("map_china_cities.html")
)
c.render_notebook()

在这里插入图片描述



拓展-pyecharts中Map源码

class pyecharts.charts.Map

class Map(
    # 初始化配置项,参考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)

func pyecharts.charts.Map.add

def add(
    # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
    series_name: str,

    # 数据项 (坐标点名称,坐标点值)
    data_pair: types.Sequence[types.Union[types.Sequence, opts.MapItem, dict]],

    # 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件
    maptype: str = "china",

    # 是否选中图例
    is_selected: bool = True,

    # 是否开启鼠标缩放和平移漫游。
    is_roam: bool = True,

    # 当前视角的中心点,用经纬度表示
    center: Optional[Sequence] = None,

    # 参数用于 scale 地图的长宽比。
    aspect_scale: types.Numeric = 0.75,

    # 二维数组,定义定位的左上角以及右下角分别所对应的经纬度。
    bounding_coords: types.Optional[types.Sequence[types.Numeric]] = None,

    # 最小的缩放值。
    min_scale_limit: types.Optional[types.Numeric] = None,

    # 最大的缩放值。
    max_scale_limit: types.Optional[types.Numeric] = None,

    # 默认是 'name',针对 GeoJSON 要素的自定义属性名称,作为主键用于关联数据点和 GeoJSON 地理要素。
    name_property: str = "name",

    # 选中模式,表示是否支持多个选中,默认关闭,支持布尔值和字符串。
    # 字符串取值可选'single'表示单选,或者'multiple'表示多选。
    selected_mode: types.Union[bool, str] = False,

    # 当前视角的缩放比例。
    zoom: Optional[Numeric] = 1,

    # 自定义地区的名称映射
    name_map: Optional[dict] = None,

    # 标记图形形状
    symbol: Optional[str] = None,

    # 多个拥有相同地图类型的系列会使用同一个地图展现。
    # 如果多个系列都在同一个区域有值,ECharts 会对这些值统计得到一个数据。
    # 这个配置项就是用于配置统计的方式,目前有:
    # 'sum' 取和。
    # 'average' 取平均值。
    # 'max' 取最大值。
    # 'min' 取最小值。
    map_value_calculation: str = "sum",

    # 是否显示标记图形
    is_map_symbol_show: bool = True,

    # 所有图形的 zlevel 值。
    # zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面。
    z_level: types.Numeric = 0,

    # 组件的所有图形的z值。控制图形的前后顺序。z 值小的图形会被 z 值大的图形覆盖。
    # z 相比 zlevel 优先级更低,而且不会创建新的 Canvas。
    z: types.Numeric = 2,

    # 组件离容器左侧的距离。
    # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比
    # 也可以是 'left', 'center', 'right'。
    pos_left: types.Union[str, types.Numeric] = "auto",

    # 组件离容器上侧的距离。
    # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比
    # 也可以是 'top', 'middle', 'bottom'。
    pos_top: types.Union[str, types.Numeric] = "auto",

    # 组件离容器右侧的距离。
    # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。默认自适应。
    pos_right: types.Union[str, types.Numeric] = "auto",

    # 组件离容器下侧的距离。
    # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。默认自适应。
    pos_bottom: types.Union[str, types.Numeric] = "auto",

    # 默认情况下,map series 会自己生成内部专用的 geo 组件。但是也可以用这个 geoIndex 指定一个 geo 组件。
    geo_index: types.Optional[types.Numeric] = None,

    # 当使用 dataset 时,seriesLayoutBy 指定了 dataset 中用行还是列对应到系列上
    # 也就是说,系列“排布”到 dataset 的行还是列上。可取值:
    # 'column':默认,dataset 的列对应于系列,从而 dataset 中每一列是一个维度(dimension)。
    # 'row':dataset 的行对应于系列,从而 dataset 中每一行是一个维度(dimension)。
    series_layout_by: str = "column",

    # 如果 series.data 没有指定,并且 dataset 存在,那么就会使用 dataset。datasetIndex 指定本系列使用那个 dataset。
    dataset_index: types.Optional[types.Numeric] = 0,

    # pyecharts 暂时没有提供 left/top/right/bottom 的配置
    # layoutCenter 和 layoutSize 提供了除了 left/right/top/bottom/width/height 之外的布局手段。
    # 在使用 left/right/top/bottom/width/height 的时候
    # 可能很难在保持地图高宽比的情况下把地图放在某个盒形区域的正中间,并且保证不超出盒形的范围。
    # 此时可以通过 layoutCenter 属性定义地图中心在屏幕中的位置,layoutSize 定义地图的大小。
    # 如下示例
    # layoutCenter: ['30%', '30%'],
    # // 如果宽高比大于 1 则宽度为 100,如果小于 1 则高度为 100,保证了不超过 100x100 的区域
    # layoutSize: 100
    layout_center: types.Optional[types.Sequence[str]] = None,

    # 地图的大小,见 layoutCenter。支持相对于屏幕宽高的百分比或者绝对的像素大小。
    layout_size: types.Union[str, types.Numeric] = None,

    # 标签配置项,参考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

    # 提示框组件配置项,参考 `series_options.TooltipOpts`
    tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,

    # 图元样式配置项,参考 `series_options.ItemStyleOpts`
    itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,

    # 高亮标签配置项,参考 `series_options.LabelOpts`
    emphasis_label_opts: Union[opts.LabelOpts, dict, None] = None,

    # 高亮图元样式配置项,参考 `series_options.ItemStyleOpts`
    emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
)

在这里插入图片描述

MapItem:地图数据项

class MapItem(
    # 数据所对应的地图区域的名称,例如 '广东','浙江'。
    name: Optional[str] = None,

    # 该区域的数据值。
    value: Optional[Numeric] = None,

    # 该区域是否选中。
    is_selected: bool = False,

    # 标签配置项,参考 `series_options.LabelOpts`
    label_opts: Union[LabelOpts, dict, None] = None,

    # 图元样式配置项,参考 `series_options.ItemStyleOpts`
    itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,

    # 提示框组件配置项,参考 `series_options.TooltipOpts`
    tooltip_opts: Union[TooltipOpts, dict, None] = None,
)



拓展-python字典key和value互换

参考:

https://blog.csdn.net/qq_34663267/article/details/111183411


上面给出的字典中,key为应为,value为中文,需要互换下:

1.字典推导式:

m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = {v: k for k, v in m.items()}
print(res)

2.使用压缩器:

m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
mi = dict(zip(m.values(), m.keys()))
print(mi)

3.遍历字典:

m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
inverted_dict = {}
for key, value in m.items():
    inverted_dict[value] = key
print(inverted_dict)

4.结合函数map, reversed:

m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
inverted_dict = dict(map(reversed, m.items()))
print(inverted_dict)

根据英文列生成中文国家名称,以上4种方法均可,本文采用字典推导式:

res = {v: k for k, v in name_map.items()}
res

在这里插入图片描述

备注,如果不想转换字典,也可以通过如下函数实现根据value获取key

# 根据字典的value获取key的函数如下:
def getkey(value, tDict):
    '''知道值获取键'''
    keys = [i for i in tDict.keys()]
    values = [j for j in tDict.values()]
    if value in values:
        i = values.index(value)
    return keys[i]



附件-世界国家地区人口数据

序号,国家(中文),国家(英文),人口数量,增长率,人口密度

1,China,“1,439,323,776”,0.39%,153

2,India,“1,380,004,385”,0.99%,464

3,United States,“331,002,651”,0.59%,36

4,Indonesia,“273,523,615”,1.07%,151

5,Pakistan,“220,892,340”,2.00%,287

6,Brazil,“212,559,417”,0.72%,25

7,Nigeria,“206,139,589”,2.58%,226

8,Bangladesh,“164,689,383”,1.01%,“1,265”

9,Russia,“145,934,462”,0.04%,9

10,Mexico,“128,932,753”,1.06%,66

11,Japan,“126,476,461”,-0.30%,347

12,Ethiopia,“114,963,588”,2.57%,115

13,Philippines,“109,581,078”,1.35%,368

14,Egypt,“102,334,404”,1.94%,103

15,Vietnam,“97,338,579”,0.91%,314

16,DR Congo,“89,561,403”,3.19%,40

17,Turkey,“84,339,067”,1.09%,110

18,Iran,“83,992,949”,1.30%,52

19,Germany,“83,783,942”,0.32%,240

20,Thailand,“69,799,978”,0.25%,137

21,United Kingdom,“67,886,011”,0.53%,281

22,France,“65,273,511”,0.22%,119

23,Italy,“60,461,826”,-0.15%,206

24,Tanzania,“59,734,218”,2.98%,67

25,South Africa,“59,308,690”,1.28%,49

26,Myanmar,“54,409,800”,0.67%,83

27,Kenya,“53,771,296”,2.28%,94

28,South Korea,“51,269,185”,0.09%,527

29,Colombia,“50,882,891”,1.08%,46

30,Spain,“46,754,778”,0.04%,94

31,Uganda,“45,741,007”,3.32%,229

32,Argentina,“45,195,774”,0.93%,17

33,Algeria,“43,851,044”,1.85%,18

34,Sudan,“43,849,260”,2.42%,25

35,Ukraine,“43,733,762”,-0.59%,75

36,Iraq,“40,222,493”,2.32%,93

37,Afghanistan,“38,928,346”,2.33%,60

38,Poland,“37,846,611”,-0.11%,124

39,Canada,“37,742,154”,0.89%,4

40,Morocco,“36,910,560”,1.20%,83

41,Saudi Arabia,“34,813,871”,1.59%,16

42,Uzbekistan,“33,469,203”,1.48%,79

43,Peru,“32,971,854”,1.42%,26

44,Angola,“32,866,272”,3.27%,26

45,Malaysia,“32,365,999”,1.30%,99

46,Mozambique,“31,255,435”,2.93%,40

47,Ghana,“31,072,940”,2.15%,137

48,Yemen,“29,825,964”,2.28%,56

49,Nepal,“29,136,808”,1.85%,203

50,Venezuela,“28,435,940”,-0.28%,32

51,Madagascar,“27,691,018”,2.68%,48

52,Cameroon,“26,545,863”,2.59%,56

53,C么te d’Ivoire,“26,378,274”,2.57%,83

54,North Korea,“25,778,816”,0.44%,214

55,Australia,“25,499,884”,1.18%,3

56,Niger,“24,206,644”,3.84%,19

57,Taiwan,“23,816,775”,0.18%,673

58,Sri Lanka,“21,413,249”,0.42%,341

59,Burkina Faso,“20,903,273”,2.86%,76

60,Mali,“20,250,833”,3.02%,17

61,Romania,“19,237,691”,-0.66%,84

62,Malawi,“19,129,952”,2.69%,203

63,Chile,“19,116,201”,0.87%,26

64,Kazakhstan,“18,776,707”,1.21%,7

65,Zambia,“18,383,955”,2.93%,25

66,Guatemala,“17,915,568”,1.90%,167

67,Ecuador,“17,643,054”,1.55%,71

68,Syria,“17,500,658”,2.52%,95

69,Netherlands,“17,134,872”,0.22%,508

70,Senegal,“16,743,927”,2.75%,87

71,Cambodia,“16,718,965”,1.41%,95

72,Chad,“16,425,864”,3.00%,13

73,Somalia,“15,893,222”,2.92%,25

74,Zimbabwe,“14,862,924”,1.48%,38

75,Guinea,“13,132,795”,2.83%,53

76,Rwanda,“12,952,218”,2.58%,525

77,Benin,“12,123,200”,2.73%,108

78,Burundi,“11,890,784”,3.12%,463

79,Tunisia,“11,818,619”,1.06%,76

80,Bolivia,“11,673,021”,1.39%,11

81,Belgium,“11,589,623”,0.44%,383

82,Haiti,“11,402,528”,1.24%,414

83,Cuba,“11,326,616”,-0.06%,106

84,South Sudan,“11,193,725”,1.19%,18

85,Dominican Republic,“10,847,910”,1.01%,225

86,Czech Republic (Czechia),“10,708,981”,0.18%,139

87,Greece,“10,423,054”,-0.48%,81

88,Jordan,“10,203,134”,1.00%,115

89,Portugal,“10,196,709”,-0.29%,111

90,Azerbaijan,“10,139,177”,0.91%,123

91,Sweden,“10,099,265”,0.63%,25

92,Honduras,“9,904,607”,1.63%,89

93,United Arab Emirates,“9,890,402”,1.23%,118

94,Hungary,“9,660,351”,-0.25%,107

95,Tajikistan,“9,537,645”,2.32%,68

96,Belarus,“9,449,323”,-0.03%,47

97,Austria,“9,006,398”,0.57%,109

98,Papua New Guinea,“8,947,024”,1.95%,20

99,Serbia,“8,737,371”,-0.40%,100

100,Israel,“8,655,535”,1.60%,400

101,Switzerland,“8,654,622”,0.74%,219

102,Togo,“8,278,724”,2.43%,152

103,Sierra Leone,“7,976,983”,2.10%,111

104,Hong Kong,“7,496,981”,0.82%,“7,140”

105,Laos,“7,275,560”,1.48%,32

106,Paraguay,“7,132,538”,1.25%,18

107,Bulgaria,“6,948,445”,-0.74%,64

108,Libya,“6,871,292”,1.38%,4

109,Lebanon,“6,825,445”,-0.44%,667

110,Nicaragua,“6,624,554”,1.21%,55

111,Kyrgyzstan,“6,524,195”,1.69%,34

112,El Salvador,“6,486,205”,0.51%,313

113,Turkmenistan,“6,031,200”,1.50%,13

114,Singapore,“5,850,342”,0.79%,“8,358”

115,Denmark,“5,792,202”,0.35%,137

116,Finland,“5,540,720”,0.15%,18

117,Congo,“5,518,087”,2.56%,16

118,Slovakia,“5,459,642”,0.05%,114

119,Norway,“5,421,241”,0.79%,15

120,Oman,“5,106,626”,2.65%,16

121,State of Palestine,“5,101,414”,2.41%,847

122,Costa Rica,“5,094,118”,0.92%,100

123,Liberia,“5,057,681”,2.44%,53

124,Ireland,“4,937,786”,1.13%,72

125,Central African Republic,“4,829,767”,1.78%,8

126,New Zealand,“4,822,233”,0.82%,18

127,Mauritania,“4,649,658”,2.74%,5

128,Panama,“4,314,767”,1.61%,58

129,Kuwait,“4,270,571”,1.51%,240

130,Croatia,“4,105,267”,-0.61%,73

131,Moldova,“4,033,963”,-0.23%,123

132,Georgia,“3,989,167”,-0.19%,57

133,Eritrea,“3,546,421”,1.41%,35

134,Uruguay,“3,473,730”,0.35%,20

135,Bosnia and Herzegovina,“3,280,819”,-0.61%,64

136,Mongolia,“3,278,290”,1.65%,2

137,Armenia,“2,963,243”,0.19%,104

138,Jamaica,“2,961,167”,0.44%,273

139,Qatar,“2,881,053”,1.73%,248

140,Albania,“2,877,797”,-0.11%,105

141,Puerto Rico,“2,860,853”,-2.47%,323

142,Lithuania,“2,722,289”,-1.35%,43

143,Namibia,“2,540,905”,1.86%,3

144,Gambia,“2,416,668”,2.94%,239

145,Botswana,“2,351,627”,2.08%,4

146,Gabon,“2,225,734”,2.45%,9

147,Lesotho,“2,142,249”,0.80%,71

148,North Macedonia,“2,083,374”,0.00%,83

149,Slovenia,“2,078,938”,0.01%,103

150,Guinea-Bissau,“1,968,001”,2.45%,70

151,Latvia,“1,886,198”,-1.08%,30

152,Bahrain,“1,701,575”,3.68%,“2,239”

153,Equatorial Guinea,“1,402,985”,3.47%,50

154,Trinidad and Tobago,“1,399,488”,0.32%,273

155,Estonia,“1,326,535”,0.07%,31

156,Timor-Leste,“1,318,445”,1.96%,89

157,Mauritius,“1,271,768”,0.17%,626

158,Cyprus,“1,207,359”,0.73%,131

159,Eswatini,“1,160,164”,1.05%,67

160,Djibouti,“988,000”,1.48%,43

161,Fiji,“896,445”,0.73%,49

162,R茅union,“895,312”,0.72%,358

163,Comoros,“869,601”,2.20%,467

164,Guyana,“786,552”,0.48%,4

165,Bhutan,“771,608”,1.12%,20

166,Solomon Islands,“686,884”,2.55%,25

167,Macao,“649,335”,1.39%,“21,645”

168,Montenegro,“628,066”,0.01%,47

169,Luxembourg,“625,978”,1.66%,242

170,Western Sahara,“597,339”,2.55%,2

171,Suriname,“586,632”,0.90%,4

172,Cabo Verde,“555,987”,1.10%,138

173,Micronesia,“548,914”,1.00%,784

174,Maldives,“540,544”,1.81%,“1,802”

175,Malta,“441,543”,0.27%,“1,380”

176,Brunei,“437,479”,0.97%,83

177,Guadeloupe,“400,124”,0.02%,237

178,Belize,“397,628”,1.86%,17

179,Bahamas,“393,244”,0.97%,39

180,Martinique,“375,265”,-0.08%,354

181,Iceland,“341,243”,0.65%,3

182,Vanuatu,“307,145”,2.42%,25

183,French Guiana,“298,682”,2.70%,4

184,Barbados,“287,375”,0.12%,668

185,New Caledonia,“285,498”,0.97%,16

186,French Polynesia,“280,908”,0.58%,77

187,Mayotte,“272,815”,2.50%,728

188,Sao Tome & Principe,“219,159”,1.91%,228

189,Samoa,“198,414”,0.67%,70

190,Saint Lucia,“183,627”,0.46%,301

191,Channel Islands,“173,863”,0.93%,915

192,Guam,“168,775”,0.89%,313

193,Cura莽ao,“164,093”,0.41%,370

194,Kiribati,“119,449”,1.57%,147

195,Grenada,“112,523”,0.46%,331

196,St. Vincent & Grenadines,“110,940”,0.32%,284

197,Aruba,“106,766”,0.43%,593

198,Tonga,“105,695”,1.15%,147

199,U.S. Virgin Islands,“104,425”,-0.15%,298

200,Seychelles,“98,347”,0.62%,214

201,Antigua and Barbuda,“97,929”,0.84%,223

202,Isle of Man,“85,033”,0.53%,149

203,Andorra,“77,265”,0.16%,164

204,Dominica,“71,986”,0.25%,96

205,Cayman Islands,“65,722”,1.19%,274

206,Bermuda,“62,278”,-0.36%,“1,246”

207,Marshall Islands,“59,190”,0.68%,329

208,Northern Mariana Islands,“57,559”,0.60%,125

209,Greenland,“56,770”,0.17%,0

210,American Samoa,“55,191”,-0.22%,276

211,Saint Kitts & Nevis,“53,199”,0.71%,205

212,Faeroe Islands,“48,863”,0.38%,35

213,Sint Maarten,“42,876”,1.15%,“1,261”

214,Monaco,“39,242”,0.71%,“26,337”

215,Turks and Caicos,“38,717”,1.38%,41

216,Saint Martin,“38,666”,1.75%,730

217,Liechtenstein,“38,128”,0.29%,238

218,San Marino,“33,931”,0.21%,566

219,Gibraltar,“33,691”,-0.03%,“3,369”

220,British Virgin Islands,“30,231”,0.67%,202

221,Caribbean Netherlands,“26,223”,0.94%,80

222,Palau,“18,094”,0.48%,39

223,Cook Islands,“17,564”,0.09%,73

224,Anguilla,“15,003”,0.90%,167

225,Tuvalu,“11,792”,1.25%,393

226,Wallis & Futuna,“11,239”,-1.69%,80

227,Nauru,“10,824”,0.63%,541

228,Saint Barthelemy,“9,877”,0.30%,470

229,Saint Helena,“6,077”,0.30%,16

230,Saint Pierre & Miquelon,“5,794”,-0.48%,25

231,Montserrat,“4,992”,0.06%,50

232,Falkland Islands,“3,480”,3.05%,0

233,Niue,“1,626”,0.68%,6

234,Tokelau,“1,357”,1.27%,136

235,Holy See,801,0.25%,“2,003”

在这里插入图片描述



版权声明:本文为m0_38139250原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。