Оформление карты мира в Pygal
Группировка стран на карте работает эффективно, но цвета по умолчанию выбираются довольно странно: например, в нашем примере Pygal выбирает схему с ярко-розовым и зеленым цветом. Директивы оформления Pygal помогут решить проблему с цветами.
В новой версии мы снова прикажем Pygal использовать один базовый цвет, но на этот раз выберем цвет и применим более выразительные оттенки для трех групп численности населения:
world_population.py
import json
import pygal
(1) from pygal.style import RotateStyle
...
# Группировка стран по 3 уровням населения.
cc_pops_1, cc_pops_2, cc_pops_3 = {}, {}, {}
for cc, pop in cc_populations.items():
. .if pop < 10000000:
. . . ....
(2)wm_style = RotateStyle('#336699')
(3)wm = pygal.Worldmap(style=wm_style)
wm.title = 'World Population in 2010, by Country'
...
Стили Pygal хранятся в модуле style, из которого программа импортирует стиль RotateStyle (1) . Этот класс получает один аргумент — цвет RGB в шестнадцатеричном формате (2). Затем Pygal выбирает цвета каждой группы на основании переданного цвета. Цвет в шестнадцатеричном формате представляет собой строку из символа решетки (#), за которым следуют шесть символов: первые два представляют красную составляющую цвета, следующие два — зеленую и последние два — синюю. Значения составляющих лежат в диапазоне от 00 (нулевая интенсивность) до FF (максимальная интенсивность). В Интернете можно легко найти приложение для экспериментов с цветами и получения соответствующих значений RGB. Цвет, используемый в данном случае (#336699), содержит немного красного (33), чуть больше зеленого (66) и еще больше синего (99). В результате RotateStyle назначается светло-синий базовый цвет для выполнения дальнейших операций.
RotateStyle возвращает объект стиля, который сохраняется в переменной wm_style. Чтобы использовать объект стиля, передайте его в именованном аргументе при создании экземпляра Worldmap (3). На рис. 16.11 изображена обновленная диаграмма.
Рис. 16.11. Три уровня численности населения в общей цветовой теме
Стилевое оформление придает карте целостный внешний вид с хорошо различимыми группами.