Доработка диаграмм Pygal

We use cookies. Read the Privacy and Cookie Policy

Немного доработаем стилевое оформление диаграммы. Мы собираемся внести несколько разных настроек, поэтому для начала слегка изменим структуру кода: создадим конфигурационный объект, который содержит все настройки, передаваемые 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 изображена диаграмма с измененным оформлением.