sdk版本:
pygal 2.4.0
pygal-maps-world 1.0.2
import json
import pygal.maps.world
from pygal_maps_world import i18n
def get_country_code(country_name):
for code,name in i18n.COUNTRIES.items():
if name == country_name:
return code
filename = “population_data.json”
with open(filename,“r”) as f:
pop_data = json.load(f)
c_populations = {}
for pop_dict in pop_data:
if pop_dict[“Year”] == “2010”:
country_name = pop_dict[“Country Name”]
populition = int(float(pop_dict[“Value”]))
code = get_country_code(country_name)
if code:
c_populations[code] = populition
cc_pops_1,cc_pops_2,cc_pops_3 = {},{},{}
for cc,pop in c_populations.items():
if pop < 10000000:
cc_pops_1[cc] = pop
elif pop < 1000000000:
cc_pops_2[cc] = pop
else:
cc_pops_3[cc] = pop
wm = pygal.maps.world.World() # 生成世界地图实例
wm.title = ‘World Population in 2010, by Country’ # 设置标题
wm.add(‘1-10m’,cc_pops_1) # 添加0——1千万的国家和人口
wm.add(‘10m-1bn’,cc_pops_2) # 添加1千万——10亿的国家和人口
wm.add(’>bn’,cc_pops_3) # 添加10亿以上的国家和人口
wm.render_to_file(‘world_population.svg’)
用浏览器打开world_population.svg文件即可
使用数据:
链接:https://pan.baidu.com/s/1TJkaBF_NvjYzjQGAafj_gA 提取码:6JP4