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は、以下の出力のコードと同じディレクトリに作成されます。
-
Tensorflowを使用して、Pythonを使用してトレーニング結果を視覚化するにはどうすればよいですか?
トレーニング結果は、「matplotlib」ライブラリを使用してPythonを使用したTensorflowで視覚化できます。 「plot」メソッドは、コンソールにデータをプロットするために使用されます。 続きを読む: TensorFlowとは何ですか?KerasはTensorFlowとどのように連携してニューラルネットワークを作成しますか? Keras Sequential APIを使用します。これは、すべてのレイヤーに1つの入力テンソルと1つの出力テンソルがあるプレーンスタックのレイヤーを操作するために使用されるシーケンシャルモデルの構築に役立ちます。 少なくとも1つの層を含むニューラ
-
Pygalを使用してPythonでツリーマップを視覚化するにはどうすればよいですか?
データの視覚化は、データの下での複雑な作業や複雑な計算を実際に行うことなく、データで何が起こっているのかを理解するのに役立つため、重要なステップです。 Pygalは、インタラクティブなプロットやグラフのSVG(Scalar Vector Graphics)画像の作成に役立つオープンソースのPythonパッケージです。 SVGは、指定されたデータを使用してアニメーショングラフを動的に生成することを指します。これらのグラフのSVG画像は、要件に応じて使用およびカスタマイズできます。 SVGイメージは非常にスケーラブルであるため、高品質の形式でダウンロードできます。これらのダウンロードされた画像は