使用pygal.maps.world库读取JSON格式文件,显示世界人口地图图示

import json
import pygal.maps.world     #引入世界地图
from pygal_maps_world.i18n import COUNTRIES     #引入世界个国家

def get_country_code(country_name):
    """根据国家的名称,获取国家的二位简称"""
    for code,name in COUNTRIES.items():
        if country_name==name:
            return  code
    return None #没有值就返回none

filename=r"population_data.json"
with open(filename) as f:   #f是打开文件的对象
    pop_data=json.load(f)   #
    #创建一个字典存储:简称:人口
    pop1,pop2,pop3={},{},{}
    #遍历每个国家的人口,只获取2010年的
    for pop in pop_data:
        if pop['Year']=='2010':
            country_name=pop['Country Name']
            quentity=int(float(pop["Value"]))
            code= get_country_code(country_name)
            if code:
                if quentity<10000000 :
                    pop1[code] =quentity
                elif quentity<100000000 :
                    pop2[code]=quentity
                else :
                    pop3[code]=quentity
            else:
                if quentity<10000000 :
                    pop1[country_name] =quentity
                elif quentity<100000000 :
                    pop2[country_name]=quentity
                else :
                    pop3[country_name]=quentity
#创建世界地图对象
wm=pygal.maps.world.World()
wm.title="2010 世界人口"
#方法add() ,它接受一个标签和一个列表或字典,后者包含我们要突出的国家的国别码--人口数。
# 每次调用add() 都将为指定的国家选择一种新颜色,并在图表左边显示该颜色和指定的标签
wm.add('0-10m',pop1 )
wm.add('10m-100m',pop2)
wm.add('>100m',pop3)

#提交到制定文件
wm.render_to_file('world_pop.svg')

 

转载于:https://www.cnblogs.com/ghgxm520/p/8580040.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值