zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    MongoDB 生态 – 可视化管理工具
    SOLR对多个(关联)表创建索引
    sublime 插件zen coding
    12/12工作笔记
    阅读《深入理解JavaScript定时机制》
    继续谈论XSS
    支付宝快捷支付模型
    谈论XSS
    生产者消费者模型
    如何根据iframe内嵌页面调整iframe高宽续篇
  • 原文地址:https://www.cnblogs.com/zhangtianyuan/p/8778764.html
Copyright © 2011-2022 走看看