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



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

369
ПРИМЕЧАНИЕ
Многие API требуют регистрации и получения ключа API для совершения вызовов . На момент 
написания для GitHub такого требования не было, но, если вы получите ключ API, предельная 
частота обращений для ваших программ значительно увеличится .
Визуализация репозиториев с использованием Pygal
Теперь, с появлением интересных данных, мы построим визуализацию, демонстри-
рующую относительную популярность проектов Python в GitHub. Мы построим 
интерактивную столбцовую диаграмму: высота каждого столбца будет представ-
лять количество звезд у проекта. Щелчок на столбце будет открывать домашнюю 
страницу проекта на GitHub. Первая попытка выглядит так:
python_repos.py
import requests
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS
# Создание вызова API и сохранение ответа.
URL = 'https://api.github.com/search/repositories?q=language:python&sort=star'
r = requests.get(URL)
print("Status code:", r.status_code)
# Сохранение ответа API в переменной.
response_dict = r.json()
print("Total repositories:", response_dict['total_count'])
# Анализ информации о репозиториях.
repo_dicts = response_dict['items']
 
names, stars = [], []
for repo_dict in repo_dicts:
 
names.append(repo_dict['name'])
stars.append(repo_dict['stargazers_count'])
# Построение визуализации.
 
my_style = LS('#333366', base_style=LCS)
 
chart = pygal.Bar(style=my_style, x_label_rotation=45, show_ 
legend=False)
chart.title = 'Most-Starred Python Projects on GitHub'
chart.x_labels = names
 
chart.add('', stars)
chart.render_to_file('python_repos.svg')
Сначала импортируется модуль 
pygal
и стили Pygal, необходимые для оформления 
диаграммы. Затем выводится статус ответа на вызов API и общее количество обна-
руженных репозиториев, чтобы мы сразу узнали о возможной проблеме с вызовом 
API. Информация о конкретных возвращенных проектах уже не выводится, потому 
что эта информация будет включена в визуализацию.
В точке 

создаются два пустых списка для хранения данных, включаемых в диа-
грамму. Нам понадобится имя каждого проекта (для пометки столбцов) и количе-


370

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




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

    Басты бет