首页 > 编程语言 > 详细

用Python画世界地图

时间:2020-11-12 18:34:40      阅读:109      评论:0      收藏:0      [点我收藏+]

画世界地图

根据名字获得国别码

from pygal_maps_world.i18n import COUNTRIES


# 定义函数,返回适用于pygal的两位国别码
def get_country_code(country_name):
    # pygal两位国别码列表表示法:pygal.maps.world.COUNTRIES.items()
    for code, name in COUNTRIES.items():
        if name == country_name:
            return code
    return None

主函数

import json  # 导入json模块
from pygal_maps_world.maps import World  # 导入世界地图
from pygal.style import RotateStyle, LightColorizedStyle  # 设置地图的基色
from studyofpython.data_down.world_map.country_codes import get_country_code  # 导入自己设定的获取国别码的函数

cc_population = {}  # 用来存储从json文件中写入的字典
cc_pops_1 = {}  # 分组存储按照人口
cc_pops_2 = {}
cc_pops_3 = {}
filename = "population_data.json"
with open(filename)as f:
    datas = json.load(f)
for data in datas:
    if data[‘Year‘] == ‘2010‘:
        country_name = data[‘Country Name‘]
        population = int(float(data[‘Value‘]))
        code = get_country_code(country_name)
        if code:
            cc_population[code] = population
        else:
            print(‘ERROR-‘ + country_name)
for cc, pop in cc_population.items():
    if pop < 10000000:
        cc_pops_1[cc] = pop
    elif pop in range(10000000, 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_style = RotateStyle(‘#336699‘, base_style=LightColorizedStyle)  # 定义风格
wm = World(style=wm_style)  # 创建地图
wm.title = ‘World Population in 2010,by Country‘
wm.add(‘0-10m‘, cc_pops_1)  # 第一个是标签,第二个是是一个包含    国别码:人口数量   的字典
wm.add(‘10m-1bn‘, cc_pops_2)
wm.add(‘>10bn‘, cc_pops_3)
wm.render_to_file(‘world_population.svg‘)  # 存储图像

技术分享图片

用Python画世界地图

原文:https://www.cnblogs.com/xiayu1314/p/13965002.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!