Использование 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.