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


Рис. 17.2. Диаграмма с улучшенным оформлением 372



Pdf көрінісі
бет223/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   219   220   221   222   223   224   225   226   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

Рис. 17.2.
Диаграмма с улучшенным оформлением


372
Глава 17 • Работа с API
При желании в 
my_config
можно внести сколько угодно стилевых и конфигураци-
онных изменений; строка 

от этого не изменится. На рис. 17.2 изображена диа-
грамма с измененным оформлением.
Добавление подсказок
В Pygal при наведении указателя мыши на отдельный столбец отображается инфор-
мация, которую этот столбец представляет. В текущей версии экранная 
подсказка
(tooltip) отображает количество звезд проекта. Давайте создадим нестандартную 
подсказку, которая также будет выводить описание каждого проекта.
Рассмотрим короткий пример, в котором каждый из первых трех проектов выво-
дится отдельно, с передачей нестандартных меток для каждого столбца. Для этого 
методу 
add()
следует передавать список словарей вместо списка значений:
bar_descriptions.py
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS
my_style = LS('#333366', base_style=LCS)
chart = pygal.Bar(style=my_style, x_label_rotation=45, show_legend=False)
chart.title = 'Python Projects'
chart.x_labels = ['httpie', 'django', 'flask']
 
plot_dicts = [
 
{'value': 16101, 'label': 'Description of httpie.'},
{'value': 15028, 'label': 'Description of django.'},
{'value': 14798, 'label': 'Description of flask.'},
]
 
chart.add('', plot_dicts)
chart.render_to_file('bar_descriptions.svg')
Рис. 17.3.
С каждым столбцом связывается нестандартная подсказка


Использование API веб-приложений
373
В точке 

определяется список с именем 
plot_dicts
, который содержит три 
словаря: для проекта HTTPie, для проекта Django и для проекта Flask. Каждый 
словарь содержит два ключа: 
'value'
и 
'label'
. Pygal использует число, связанное 
с 
'value'
, для определения высоты каждого столбца, а строка, связанная с 
'label'

используется для создания подсказки столбца. Например, первый словарь 

соз-
даст столбец, представляющий проект с 16 101 звездой, а в его подсказке будет 
содержаться текст 
Description of httpie
.
Метод 
add()
должен получать строку и список. При вызове 
add()
передается 
список словарей, представляющих столбцы (
plot_dicts


. Одна из подска-
зок изображена на рис. 17.3. Pygal включает количество звезд как подсказку 
по умолчанию в дополнение к нестандартной подсказке, которую мы определили 
в программе.
Нанесение данных на диаграмму
Чтобы построить диаграмму с данными, мы сгенерируем 
plot_dicts
автоматически 
для 30 проектов, возвращенных вызовом API.
python_repos.py
...
# Анализ информации о репозиториях.
repo_dicts = response_dict['items']
print("Number of items:", len(repo_dicts))
 
names, plot_dicts = [], []
for repo_dict in repo_dicts:
names.append(repo_dict['name'])
 
plot_dict = {
'value': repo_dict['stargazers_count'],
'label': repo_dict['description'],
}
 
plot_dicts.append(plot_dict)
# Построение визуализации.
my_style = LS('#333366', base_style=LCS)
...
 
chart.add('', plot_dicts)
chart.render_to_file('python_repos.svg')
В точке 

создаются два пустых списка, 
names
и 
plot_dicts
. Список 
names
все еще 
необходим для построения меток оси 
x
.
Внутри цикла для каждого проекта создается словарь 
plot_dict

. В нем количе-
ство звезд сохраняется с ключом 
'value'
, а описание проекта — с ключом 
'label'

Затем словарь 
plot_dict
каждого проекта присоединяется к 
plot_dicts

. В точ-
ке 

список 
plot_dicts
передается 
add()
. Полученная диаграмма изображена 
на рис. 17.4.




Достарыңызбен бөлісу:
1   ...   219   220   221   222   223   224   225   226   ...   266




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

    Басты бет