• Python Pygal绘制世界人口地图


    数据集可在 https://datahub.io/JohnSnowLabs/population-figures-by-country 下载

    #coding=utf-8
    import json
    from country_codes import get_country_code
    import pygal.maps.world
    from pygal.style import RotateStyle as RS, LightColorizedStyle as LCS
    
    # 将数据加载到列表中
    filename = 'population_data.json'
    with open(filename) as f:
        pop_data = json.load(f)
    
    # 创建一个包含人口数量的字典
    cc_populations = {}
    for pop_dict in pop_data:
        country_name = pop_dict['Country_Name']
        population = pop_dict['Population_in_2016']
        code = get_country_code(country_name)
        if code:
            cc_populations[code] = population
    
    # 根据人口数量将国家分成4组
    cc_pop_1, cc_pop_2, cc_pop_3, cc_pop_4 = {}, {}, {}, {}
    for cc, pop in cc_populations.items():
        if pop < 10000000:
            cc_pop_1[cc] = pop
        elif pop < 100000000:
            cc_pop_2[cc] = pop
        elif pop < 1000000000:
            cc_pop_3[cc] = pop
        else:
            cc_pop_4[cc] = pop
    
    # wm_style = RS('#336699', base_style=LCS)
    wm = pygal.maps.world.World()
    wm.title = 'World Population in 2016, by Country'
    wm.add(u'0-1千万', cc_pop_1)
    wm.add(u'1千万-1亿', cc_pop_2)
    wm.add(u'1亿-10亿', cc_pop_3)
    wm.add(u'>10亿', cc_pop_4)
    
    wm.render_to_file('world_population.svg')
    from pygal_maps_world.i18n import COUNTRIES
    
    def get_country_code(country_name):
        for code, name in COUNTRIES.items():
            if name == country_name:
                return code
        return None
  • 相关阅读:
    网络安全分析
    java实现 洛谷 P1464 Function
    java实现 洛谷 P1464 Function
    java实现 洛谷 P1014 Cantor表
    java实现 洛谷 P1014 Cantor表
    java实现 洛谷 P1014 Cantor表
    java实现 洛谷 P1014 Cantor表
    java实现 洛谷 P1014 Cantor表
    java实现 洛谷 P1540 机器
    java实现 洛谷 P1540 机器
  • 原文地址:https://www.cnblogs.com/zhangtianyuan/p/8778764.html
Copyright © 2020-2023  润新知