Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでAPIの結果を視覚化する方法


はじめに..

APIを作成する最大の利点の1つは、現在/ライブのデータを抽出することです。データが急速に変化している場合でも、APIは常に最新のデータを取得します。 APIプログラムは、非常に具体的なURLを使用して、特定の情報を要求します。 SpotifyまたはYoutubeMusicで2020年に最も再生された100曲をToppします。リクエストされたデータは、JSONやCSVなどの簡単に処理できる形式で返されます。

Pythonを使用すると、ユーザーは考えられるほぼすべてのURLにAPI呼び出しを記述できます。この例では、GitHubからAPIの結果を抽出して視覚化する方法を示します。

注- 計画ではSpotifyからのAPI結果を表示する予定でしたが、Spotifyには複数の投稿が必要になる可能性があるより多くの前提条件が必要なため、この投稿ではGitHUbを使用します。

Github、しばしば開発者と呼ばれるFacebookを使用すると、さまざまなデータを抽出するためのAPI呼び出しを作成できます。より多くの星を含むJavascriptGithubリポジトリを検索したいとします。 GitHubはAPIキーを必要としませんが、他の人は必要とする場合があります。

その方法..

1. pythonコマンドプロンプトを開き、pipインストールリクエストを起動して、リクエストパッケージをインストールします。

import requests

# set the siteurl
site_url = 'https://api.github.com/search/repositories?q=language:javascript&sort=stars'

# set the headers
headers = {'Accept': 'application/vnd.github.v3+json'}

# call the url and save the response
response = requests.get(site_url, headers=headers)

# Get the response
print(f"Output \n *** Response from {site_url} is {response.status_code} ")

出力

*** Response from https://api.github.com/search/repositories?q=language:javascript&sort=stars is 200

2. APIは情報をJSON形式で返すため、json()メソッドを使用して情報をPythonディクショナリに変換する必要があります。

response_json = response.json()
print(f"Output \n *** keys in the Json file \n {response_json.keys()} \n")

print(f" *** Total javascript repositories in GitHub \n {response_json['total_count']}" )

出力

*** keys in the Json file
dict_keys(['total_count', 'incomplete_results', 'items'])

*** Total javascript repositories in GitHub
11199577
  • したがって、3つのキーがあり、そのうちincomplete_resultsを無視できます。今すぐ最初のリポジトリを調べてみましょう。

repositories = response_json['items']
first_repo = repositories[0]

print(f"Output \n *** Repository information keys total - {len(first_repo)} - values are -\n")
for keys in sorted(first_repo.keys()):
print(keys)

print(f" *** Repository name - {first_repo['name']}, Owner - {first_repo['owner']['login']}, total watchers - {first_repo['watchers_count']} ")

出力

***リポジトリ情報キー合計
*** Repository information keys total - 74 - values are -

archive_url
archived
assignees_url
blobs_url
branches_url
clone_url
collaborators_url
comments_url
commits_url
compare_url
contents_url
contributors_url
created_at
default_branch
deployments_url
description
disabled
downloads_url
events_url
fork
forks
forks_count
forks_url
full_name
git_commits_url
git_refs_url
git_tags_url
git_url
has_downloads
has_issues
has_pages
has_projects
has_wiki
homepage
hooks_url
html_url
id
issue_comment_url
issue_events_url
issues_url
keys_url
labels_url
language
languages_url
license
merges_url
milestones_url
mirror_url
name
node_id
notifications_url
open_issues
open_issues_count
owner
private
pulls_url
pushed_at
releases_url
score
size
ssh_url
stargazers_count
stargazers_url
statuses_url
subscribers_url
subscription_url
svn_url
tags_url
teams_url
trees_url
updated_at
url
watchers
watchers_count
*** Repository name - freeCodeCamp, Owner - freeCodeCamp, total watchers - 316079

4.視覚化の時間です。消化する情報がたくさんあるので、結果を視覚化するのが最善の方法です。覚えておいてください-「写真は千の言葉に値する」。

他の投稿でmatplotlibについてはすでに説明したので、変更については、plotlyを使用してグラフ化します。

  • モジュールをインストールします-プロットします。プロットでインポートすることから始めます。

from plotly.graph_objs import Bar
from plotly import offline

6.リポジトリと星の数の棒グラフを作成します。星が多いほど、リポジトリの人気が高くなります。誰が一番上にいるかを確認するのにとても良い方法です。したがって、リポジトリ名と星の数の2つの変数が必要です。

In [6]:

repo_names, repo_stars = [], []
for repo_info in repositories:
repo_names.append(repo_info['name'])
repo_stars.append(repo_info['stargazers_count'])

7.データリストを準備して視覚化を開始します。これには、プロットのタイプを定義し、x値とy値のデータを提供する辞書が含まれています。すでにお察しのとおり、はい、x軸を使用してプロジェクト名をプロットし、y軸を使用して星をプロットします。

data_plots = [{'type' : 'bar', 'x':repo_names , 'y': repo_stars}]

8. x軸、y軸、およびチャート全体のタイトルを追加します。

layout = {'title': 'GItHubs Most Popular Javascript Projects',
'xaxis': {'title': 'Repository'},
'yaxis': {'title': 'Stars'}}

9.プロットの時間。

import requests
from plotly.graph_objs import Bar
from plotly import offline

site_url = 'https://api.github.com/search/repositories?q=language:javascript&sort=stars'

headers = {'Accept': 'application/vnd.github.v3+json'}
response = requests.get(site_url, headers=headers)
response_json = response.json()

repo_names, repo_stars = [], []
for repo_info in repositories:
repo_names.append(repo_info['name'])
repo_stars.append(repo_info['stargazers_count'])

data_plots = [{'type' : 'bar', 'x':repo_names , 'y': repo_stars}]
layout = {'title': 'GItHubs Most Popular Javascript Projects',
'xaxis': {'title': 'Repository'},
'yaxis': {'title': 'Stars'}}

fig = {'data': data_plots, 'layout': layout}
offline.plot(fig, filename='Most_Popular_JavaScript_Repos.html')

'Most_Popular_JavaScript_Repos.html'

出力

Most_Popular_JavaScript_Repos.htmlは、以下の出力のコードと同じディレクトリに作成されます。

PythonでAPIの結果を視覚化する方法


  1. Tensorflowを使用して、Pythonを使用してトレーニング結果を視覚化するにはどうすればよいですか?

    トレーニング結果は、「matplotlib」ライブラリを使用してPythonを使用したTensorflowで視覚化できます。 「plot」メソッドは、コンソールにデータをプロットするために使用されます。 続きを読む: TensorFlowとは何ですか?KerasはTensorFlowとどのように連携してニューラルネットワークを作成しますか? Keras Sequential APIを使用します。これは、すべてのレイヤーに1つの入力テンソルと1つの出力テンソルがあるプレーンスタックのレイヤーを操作するために使用されるシーケンシャルモデルの構築に役立ちます。 少なくとも1つの層を含むニューラ

  2. Pygalを使用してPythonでツリーマップを視覚化するにはどうすればよいですか?

    データの視覚化は、データの下での複雑な作業や複雑な計算を実際に行うことなく、データで何が起こっているのかを理解するのに役立つため、重要なステップです。 Pygalは、インタラクティブなプロットやグラフのSVG(Scalar Vector Graphics)画像の作成に役立つオープンソースのPythonパッケージです。 SVGは、指定されたデータを使用してアニメーショングラフを動的に生成することを指します。これらのグラフのSVG画像は、要件に応じて使用およびカスタマイズできます。 SVGイメージは非常にスケーラブルであるため、高品質の形式でダウンロードできます。これらのダウンロードされた画像は