在python3中,绘制地图,并根据人口数量绘制不同颜色

来源:互联网 发布:二级建造师 知乎 编辑:程序博客网 时间:2024/04/30 05:24

在python3中,绘制地图,并根据人口数量绘制不同颜色

import jsonfrom pygal.style import RotateStyleimport pygal.maps.world as pygalfrom country_codes import get_country_code#将数据加载到一个列表上filename='population_data.json'with open(filename) as f:    #函数json.load()将数据转换为Python能够处理的格式,这里是一个列表    #一个列表中,存在多个字典    pop_data=json.load(f)#遍历列表pop_data,其中每一个元素均为字典#每个字典,为4个键-值 对#将每个字典存储在变量pop_dict中#创建一个包含人口数量的字典cc_populations={}for pop_dict in pop_data:    #根据字典中的“键”,查找对应的“值”    if pop_dict['Year'] == '2010':        country_name=pop_dict['Country Name']        population=int(float(pop_dict['Value']))        # print(country_name + ":" + str(population))        #调用函数,提取2位的国家代码        code=get_country_code(country_name)        if code:            cc_populations[code]=populationcc_pops_1,cc_pops_2,cc_pops_3={},{},{}for cc,pop in cc_populations.items():    if pop<10000000:        cc_pops_1[cc]=pop    elif pop<1000000000:        cc_pops_2[cc]=pop    else:        cc_pops_3[cc]=pop#查看每个分组分别包含多少个国家print(len(cc_pops_1),len(cc_pops_2),len(cc_pops_3))wm=pygal.World()wm_style=RotateStyle('#336699')wm=pygal.World(style=wm_style)wm.title='World Population in 2010,by Country'#第一个参数:标题#第二个参数:字典组成的 国别码:人口数量# wm.add('2010',cc_populations)#对不同人口数量的国家进行着色wm.add('0-10m',cc_pops_1)wm.add('10m-1bn',cc_pops_2)wm.add('>1bn',cc_pops_3)#生成 .svg 文件wm.render_to_file('world_population3.svg')
阅读全文
0 0