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

news2024/11/16 15:43:28

文章目录

    • 参考
    • 安装与查看pyecharts
    • 地图实现-Geo
      • 数据集查看
      • 读取数据
      • 生成中文国家名称
        • 国家中文和英文名称字典:
        • 根据字典,生成国家中文名
        • 查看没有转换成功的国家中文有哪些
        • 过滤包含中文国家名的数据
      • 可视化人口数据
      • 显示中国城市地图数据
    • 拓展-pyecharts中Map源码
    • 拓展-python字典key和value互换
    • 附件-世界国家地区人口数据

参考

官方文档: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”

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开放耳机有什么优缺点,推荐几款不错的开放式耳机

​由于骨传导耳机可以保持耳朵的开放,长时间佩戴不会有闷热感,同时可以在运动中保持安全,因此被越来越多的人接受。在目前市面上骨传导耳机品牌众多,价格从几十元到上千元不等,为了让大家更好地挑选适合自己的骨传导耳…

java获取两个日期之间的所有日期

1、获取日期的过程: 首先创建一个数组,然后在数组的末尾加上一个日期。当我们有两个日期时,可以把这两个日期当做是不同的数组,然后使用 next函数把这两个日期之间的所有时间都获取出来。 2、代码演示: 3、实现效果&am…

bat批处理文件无法执行

执行后弹出cmd窗口,但里面命令未执行 方案一: 1、打开开始菜单——控制面板 2、点击系统和安全——系统 3、点击左上角的“高级系统设置” 4、切换到“高级”选项卡,点击下方的“环境变量” 5、在用户变量下方点击“新建”,…

3.2.3队列的链式实现

队列的链式实现 注意声明队头指针和队尾指针作用 (1)插入节点的时候只要rear指针指向结点的next指针指向的位置; (2)删除只要front指指针指向的头节点next指针指向的位置删除; (1)初始化(带头结点) 初试化…

C++:多态的底层实现原理 -- 虚函数表

目录 一. 多态的原理 1.1 虚函数表 1.2 多态的实现原理 1.3 动态绑定与静态绑定 二. 多继承中的虚函数表 2.1 虚函数表的打印 2.2 多继承中虚函数表中的内容存储情况 一. 多态的原理 1.1 虚函数表 对于一个含有虚函数的的类,在实例化出来对象以后&#xff0…

Docker部署SpringBoot+Vue项目

1.项目部署规划 1.后端多模块项目blog以及各模块运行端口: 前台服务模块sangeng-blog->7777,后台服务模块sangeng-admin->8989,公共模块sangeng-framework 2.前端前台Vue项目:sg-blog-vue->80 3.前端后台Vue项目&#x…

如何在AWS EKS上部署安装nginx ingress controller

Ingress Controller Ingress Controller 通常是一个负载均衡器,用于将外部流量路由到您的 Kubernetes 集群,并负责 L4-L7 网络服务 Ingress controller 仅覆盖 L7 流量,而入口重新路由 HTTP 和 HTTPS 流量 Type of Ingress Controllers C…

QT编程集成环境在Ubuntu中如何使用ROS工程?

文章目录 0.引言1.安装Qt Creator(带ROS插件)2.创建ROS工程3.创建功能包4.创建节点5.添加编译规则6.编译运行 0.引言 在进行ROS开发过程中,会创建许多功能包和源代码文件,这些文件少量时,手动管理还能接受,…

微搭低代码学习之数据收集

低代码和开发之间的关系 低代码平台是一种快速构建应用程序的工具,旨在提高开发效率。它们提供了一种基于图形用户界面的方式来创建应用程序,而无需编写大量的代码。使用低代码平台,开发人员可以更快速地构建和交付应用程序,从而缩…

nginx--HTTPS服务

目录 1.为什么要使用https 2.https协议的实现 1.对称加密 2.非对称加密 3.https加密 3.生成密钥和CA证书需要的依赖 1.查看是否有装openssl 2.查看nginx是否有 --with-http_ssl_module 4.生成密钥和CA证书步骤 步骤一、生成key密钥 步骤二、通过密钥去生成证书签名请求文件…

Java多例Bean的应用场景-easyExcel导入

目录 1. bean注入方式(IOC)2. 有状态会话bean和无状态会话bean3. 单例模式和多例模式4. 深挖多例模式应用场景? 1. bean注入方式(IOC) 2. 有状态会话bean和无状态会话bean 有状态会话bean:每个用户有自己特…

2023什么电脑配置适合机器学习和人工智能

机器学习和人工智能应用有多种类型——从传统的回归模型、非神经网络分类器和以 Python SciKitLearn 和 R 语言的功能为代表的统计模型,到使用 PyTorch 和 TensorFlow 等框架的深度学习模型. 在这些不同类型的 ML/AI 模型中,也可能存在显着差异。“最佳”…

不用ChatGPT,只用CodeGeeX with Chat!一样实现智能问答

在ChatGPT推出后,许多人发现,它在编程方面也具有强大的能力——在编写代码过程中,如果遇到问题,可以不必去搜索引擎寻找答案,而是直接向ChatGPT提问。不过,在申请使用一些功能时,需要先等待各种…

机器人感知与控制关键技术及其智能制造应用

源自:自动化学报 作者:王耀南 江一鸣 姜娇 张辉 谭浩然 彭伟星 吴昊天 曾凯 摘 要 智能机器人在服务国家重大需求, 引领国民经济发展和保障国防安全中起到重要作用, 被誉为“制造业皇冠顶端的明珠”. 随着新一轮工业革命的到来, 世界主要工业国…

【Linux】System V IPC-进程信号

进程信号 信号的概念信号的产生信号的种类信号的处理方式信号的注册信号的注销信号的自定义处理方式信号的捕捉流程信号的阻塞常见的程序崩溃父子进程进程等待自定义信号处理方式volatile关键字 信号的概念 信号是一个软件中断,实际上是操作系统告诉进程需要进程执行…

08 - 文章详情页面

文章详情页面 8-1:开篇 从本章开始我们要进入文章详情的页面开发。 在文章详情页面可以展示: 文章标题作者信息发布时间文章内容文章评论 同时你可以在这里进行: 作者关注文章评论文章点赞文章收藏 等操作。 基本功能大家可以进入到我…

IT知识百科:什么是暴力破解?

暴力破解是一种常见的网络安全攻击方法,它利用计算机程序自动尝试大量的密码组合来破解密码。这种攻击方法通常用于获取未经授权的访问权限,如入侵网络系统或个人账户。在本文中,我们将探讨暴力破解的原理、工具和防范方法。 暴力破解的原理 …

WPS表格的重复项使用方法

重复项就是指一列内容中有重复一样的值,或者两列数据对比后是否有重复的值,而在WPS表格中提供了直接标记重复值(高度重复项),删除重复值和限制重复值在一个单元格区域中输入。 【WPS表格的高度重复项】 作用是&#…

【K8S系列】深入解析DNS

序言 世界上最幸福的事之一,莫过于经过一番努力后,所有东西正慢慢变成你想要的样子。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记一级论点蓝色:用来标记二级论点 Kubernet…

数据挖掘——KNN算法的实现

👨‍💻作者简介:练习时长两年半的java博主 📖个人主页:君临๑ 🎁 ps:点赞是免费的,却可以让写博客的作者开心好几天😎 文章目录 一、k-最近邻分类算法介绍 二、k-NN的特…