Книга «Изучаем Python»


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



Pdf көрінісі
бет194/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   190   191   192   193   194   195   196   197   ...   238
Байланысты:
2 5343781172763690906

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


Формат JSON    357

много стран окрашено в светлые тона, а стран с темной окраской всего две. Кон-

траст между большинством стран попросту недостаточен для того, чтобы зритель 

мог понять, в какой стране больше или меньше население. Чтобы решить эту про-

блему, мы сгруппируем страны по уровням населения и окрасим каждую группу 

по отдельности.

Группировка стран по населению

Китай и Индия по численности населения опережают все остальные страны, по-

этому нашей карте не хватает контраста. И в Китае, и в Индии проживает свыше 

миллиарда человек, тогда как в следующей по численности населения стране — 

Соединенных Штатах — население составляет около 300 миллионов. Вместо того 

чтобы наносить на диаграмму все страны в одной группе, разделим страны на три 

уровня населения: менее 10 миллионов, от 10 миллионов до 1 миллиарда и более 

1 миллиарда:



world_population.py

...


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

cc_populations = {}

for pop_dict in pop_data:

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

--snip--

if code:


cc_populations[code] = population

# Группировка стран по 3 уровням населения.

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.Worldmap()

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

x wm.add('0-10m', cc_pops_1)

wm.add('10m-1bn', cc_pops_2)

wm.add('>1bn', cc_pops_3)

    


wm.render_to_file('world_population.svg')

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

Затем программа перебирает 

cc_populations

 и проверяет население каждой стра-

ны . Блок 

if

-

elif



-

else


 добавляет элемент в соответствующий словарь (

cc_pops_1

cc_pops_2



 или 

cc_pops_3

) для каждой пары «код страны—население».





Достарыңызбен бөлісу:
1   ...   190   191   192   193   194   195   196   197   ...   238




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет