382
Глава 17 •
Работа с API
repo_names.append(repo_dict['name'])
stars.append(repo_dict['stargazers_count'])
# Построение визуализации.
❹
data = [{
'type': 'bar',
'x': repo_names,
'y': stars,
}]
❺
my_layout = {
'title': 'Most-Starred Python Projects on GitHub',
'xaxis': {'title': 'Repository'},
'yaxis': {'title': 'Stars'},
}
fig = {'data': data, 'layout': my_layout}
offline.plot(fig, filename='python_repos.html')
Мы импортируем класс
Bar
и модуль
offline
из
plotly
. Импортировать класс
Layout
не нужно, потому что для определения макета будет использоваться сло-
варь, как это делалось со списком
data
в проекте с землетрясениями из главы 16.
Затем выводится статус ответа на вызов API, чтобы мы сразу узнали о возможной
проблеме с вызовом API
. Часть кода обработки ответа API удалена, потому что
фаза исследования данных осталась позади; мы знаем, что получены именно те
данные, которые нам нужны.
В точке
создаются два пустых списка для хранения данных, включаемых в диа-
грамму. Нам понадобится имя каждого проекта (для пометки столбцов) и количе-
ство звезд, определяющее высоту столбцов. В цикле имя каждого проекта и коли-
чество звезд присоединяются к соответствующему списку.
Затем определяется список
data
. Он содержит словарь вроде того, который
использовался в главе 16: он определяет тип диаграммы и содержит значения по
осям
x
и
y
. По оси
x
размещаются названия проектов, а по оси
y
— количество звезд,
назначенное каждому проекту.
В точке
макет диаграммы определяется при помощи словаря. Вместо того чтобы
создавать экземпляр класса
Layout
, мы строим словарь с нужными спецификаци-
ями макета. Далее назначается заголовок для диаграммы в целом, а также метки
каждой оси.
Полученная диаграмма изображена на рис. 17.1. Мы видим, что несколько первых
проектов существенно популярнее остальных, но все эти проекты занимают важное
место в экосистеме Python.
Доработка
диаграмм Plotly
Немного доработаем стилевое оформление диаграммы.
Как было показано
в главе 16, все директивы стилевого оформления включаются в виде пар «ключ-
значение» в
словари
data
и
my_layout
.