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

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

import json
from pygal.style import RotateStyle
import pygal.maps.world as pygal

from 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]=population

cc_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')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值