Доработка диаграмм Pygal
Немного доработаем стилевое оформление диаграммы. Мы собираемся внести несколько разных настроек, поэтому для начала слегка изменим структуру кода: создадим конфигурационный объект, который содержит все настройки, передаваемые Bar():
python_repos.py
...
# Построение визуализации.
my_style = LS('#333366', base_style=LCS)
(1) my_config = pygal.Config()
(2)my_config.x_label_rotation = 45
my_config.show_legend = False
(3)my_config.title_font_size = 24
my_config.label_font_size = 14
my_config.major_label_font_size = 18
(4)my_config.truncate_label = 15
(5)my_config.show_y_guides = False
? my_config.width = 1000
? chart = pygal.Bar(my_config, style=my_style)
chart.title = 'Most-Starred Python Projects on GitHub'
chart.x_labels = names
chart.add('', stars)
chart.render_to_file('python_repos.svg')
В точке (1) создается экземпляр класса Pygal Config с именем my_config; изменение атрибутов my_config приведет к изменению внешнего вида диаграммы. Мы задаем два атрибута x_label_rotation и show_legend (2), которые ранее передавались в виде именованных аргументов при создании экземпляра Bar. В точке (3) назначаются размеры шрифта для заголовка диаграммы, дополнительных и основных меток. К дополнительным меткам на этой диаграмме относятся имена проектов по оси x и большинство чисел по оси y. Основными метками являются только метки оси y для делений, кратных 5000 звездам. Эти метки должны быть более крупными, поэтому мы назначаем им другой размер шрифта. В точке (4) атрибут truncate_label используется для сокращения длинных имен проектов до 15 символов. (Если навести указатель мыши на сокращенное имя проекта, на экране появляется подсказка с полным именем.) Затем мы скрываем горизонтальные линии на графике, задавая атрибуту show_y_guides значение False (5). Наконец, в точке ? назначается ширина диаграммы для более эффективного использования доступного места в браузере.
Теперь при создании экземпляра Bar ? мы передаем my_config в первом аргументе; таким образом, один аргумент передает сразу все настройки конфигурации.
Рис. 17.2. Диаграмма с улучшенным оформлением
При желании в my_config можно внести сколько угодно стилевых и конфигурационных изменений; строка ? от этого не изменится. На рис. 17.2 изображена диаграмма с измененным оформлением.