М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет276/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   272   273   274   275   276   277   278   279   ...   334
Байланысты:
Изучаем Python

python_repos_visual.py
import requests

from plotly.graph_objs import Bar
from plotly import offline

# Создание вызова API и сохранение ответа.
url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
headers = {'Accept': 'application/vnd.github.v3+json'}
r = requests.get(url, headers=headers)
print(f"Status code: {r.status_code}")
# Обработка результатов.
response_dict = r.json()
repo_dicts = response_dict['items']

repo_names, stars = [], []
for repo_dict in repo_dicts:


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
.


Использование API веб-приложений


Достарыңызбен бөлісу:
1   ...   272   273   274   275   276   277   278   279   ...   334




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

    Басты бет