Построение полной карты населения

We use cookies. Read the Privacy and Cookie Policy

Чтобы нанести на карту данные численности населения для других стран, обработанные ранее данные необходимо преобразовать в формат словаря Pygal: с двухбуквенными кодами стран и численностью населения, образующими пары «ключ—значение». Добавьте следующий код в world_population.py:

world_population.py

import json

import pygal

from country_codes import get_country_code

# Список заполняется данными.

...

# Построение словаря с данными численности населения.

(1) cc_populations = {}

for pop_dict in pop_data:

if pop_dict['Year'] == '2010':

country = pop_dict['Country Name']

population = int(float(pop_dict['Value']))

code = get_country_code(country)

if code:

(2) . . . . . .cc_populations[code] = population

(3)wm = pygal.Worldmap()

wm.title = 'World Population in 2010, by Country'

(4)wm.add('2010', cc_populations)

. .

wm.render_to_file('world_population.svg')

Сначала импортируется модуль pygal. В точке (1) создается пустой словарь для хранения кодов стран и численности населения в формате, принятом Pygal. В точке (2) для полученных кодов строится очередной элемент словаря cc_populations; ключом пары становится код страны, а значением — численность населения. Также из программы удаляются все команды print.

Мы создаем экземпляр Worldmap и задаем его атрибут title (3). При вызове add() передается словарь с кодами стран и значениями численности населения (4).

На рис. 16.9 изображена полученная карта.

Несколько стран, для которых данные отсутствуют, окрашены в черный цвет, но большинство стран раскрашено в соответствии с размером населения. Проблемой отсутствующих данных мы займемся позднее в этой главе, а сначала приведем тон закраски в соответствие с населением стран. В настоящее время на карте слишком

Рис. 16.9. Численность мирового населения в 2010 году

много стран окрашено в светлые тона, а стран с темной окраской всего две. Контраст между большинством стран попросту недостаточен для того, чтобы зритель мог понять, в какой стране больше или меньше население. Чтобы решить эту проблему, мы сгруппируем страны по уровням населения и окрасим каждую группу по отдельности.