スポンサーリンク

Pythonで仮想通貨の価格をリアルタイム取得&グラフ表示する方法【Coincheck API】

データ分析

1. はじめに

仮想通貨の価格って、1分どころか1秒単位でどんどん変わりますよね。
「今のレートを瞬時に確認したい!」とか、「リアルタイムで動くグラフを見てみたい!」と思ったことはありませんか?

この記事では、Pythonを使って
💰 Coincheck(コインチェック)のAPIから仮想通貨の最新レートを自動取得し、
📊 その情報をリアルタイムでグラフ表示する方法をわかりやすく解説していきます!

たとえば、以下のようなことができるようになります:

  • Pythonでビットコインやイーサリアムの価格を1秒ごとに取得
  • データをグラフ化して、価格変動を可視化
  • グラフをリアルタイムで自動更新し続ける仕組みを構築

使うのは、requestsplotlyなどのおなじみのライブラリ。Jupyter Notebookで動かせば、インタラクティブな表示もサクッと実現できます。

難しい前提知識は不要です!
APIの使い方から、グラフの更新処理まで一つずつ丁寧に解説していきますので、
「仮想通貨データをPythonで触ってみたい!」という方にぴったりの内容です。

それではさっそく始めていきましょう!




2. Coincheck APIの基本と取得できるデータ

まずは、Pythonで仮想通貨の価格を取得するために使う「Coincheck(コインチェック)のAPI」について簡単に紹介します。

🔗 CoincheckのAPIとは?

Coincheckは日本でも有名な仮想通貨取引所のひとつで、APIを公開してくれているので、誰でも自分のプログラムから価格データを取得できます。
今回はその中でも「パブリックAPI」と呼ばれる、ログインや認証なしで使えるAPIを活用します。

📥 レート取得のエンドポイント

仮想通貨の価格を取得するには、以下のURLにアクセスするだけです:

https://coincheck.com/api/rate/btc_jpy

このURLにアクセスすると、次のようなJSON形式のデータが返ってきます:

{"rate": 1050000.0}

このrateが、ビットコインと日本円の最新の販売レートを示しています(例では105万円)。

💱 対応している通貨ペアの例

Coincheckでは以下のような通貨ペアの価格も取得できます:

通貨ペア説明
btc_jpyビットコイン / 日本円
eth_jpyイーサリアム / 日本円
etc_jpyイーサリアムクラシック / 日本円
lsk_jpyリスク / 日本円
mona_jpyモナコイン / 日本円

使い方はすべて同じで、URLの最後を変更するだけでOKです。

📌 ポイントまとめ

  • CoincheckのパブリックAPIは無料&認証なしで使える
  • 各通貨の最新レートを取得するには、指定されたURLにアクセス
  • 返ってくるデータはとてもシンプル({"rate": 価格}

このAPIを活用すれば、ブラウザでチャートを確認しなくても、Pythonで自動的にデータを取得・処理できるようになります。




3. 使用ライブラリの紹介とインストール

ここでは、この記事で使うPythonライブラリと、そのインストール方法をまとめて紹介します。すべて一般的なライブラリなので、簡単に準備できますよ。

🧰 使用する主なライブラリ一覧

ライブラリ名用途
requestsCoincheckのAPIから価格データを取得
plotly.graph_objectsリアルタイムで更新されるグラフを描画
time取得タイミングの間隔(1秒ごと)を制御
IPython.displayJupyter Notebookで出力をクリアしながらグラフを更新

✅ インストール方法

requestsplotlyは外部ライブラリなので、事前にインストールが必要です。
以下のコマンドをターミナル(またはJupyterのセル)で実行してください:

pip install requests plotly

Jupyter Notebook を使っている場合は、必要に応じて以下のパッケージも入れておくと便利です:

pip install notebook

💡 timeIPython.displayはPython標準の機能なので、追加インストールは不要です。

これで準備完了です!
次は、実際にCoincheckのAPIから価格を取得する処理を書いてみましょう!




4. 実装①|仮想通貨レートの取得

ではここから、実際にPythonを使ってCoincheckのAPIから仮想通貨のレートを取得してみましょう!

今回は例として、**ビットコイン(BTC/JPY)**の価格を取得します。

🔍 基本のコード

まずはAPIからデータを取得し、レートを表示するシンプルなコードを書いてみましょう:

import requests

# CoincheckのレートAPI(BTC/JPY)
url = "https://coincheck.com/api/rate/btc_jpy"

# データを取得
response = requests.get(url)

# 結果をJSON形式で取得
data = response.json()

# レートを表示
print("現在のビットコイン価格(JPY):", data["rate"])

📝 補足ポイント

  • requests.get(url)でAPIにアクセスし、最新の価格データを取得しています。
  • response.json()で、APIから返ってきたJSONデータを辞書として扱えるようにしています。
  • data["rate"]には、ビットコインの日本円価格が格納されています。

🚧 エラー対策(応用編)

通信に失敗した場合などに備えて、エラーハンドリングも入れておくと安心です:

try:
response = requests.get(url, timeout=5)
response.raise_for_status() # ステータスコードが200以外なら例外を発生
data = response.json()
print("現在のビットコイン価格(JPY):", data["rate"])
except requests.exceptions.RequestException as e:
print("データの取得に失敗しました:", e)

このように、たった数行のコードで最新の仮想通貨価格を取得することができます!

次はこのデータを使って、リアルタイムにグラフを描画・更新する方法を紹介していきます。




5. 実装②|リアルタイムでグラフを描画する

さきほど取得したビットコインの価格データを、今度はグラフとして可視化してみましょう。
しかも、1秒ごとに自動で更新されるリアルタイム表示に挑戦します!

🎯 実現すること

  • APIから価格を取得(1秒ごと)
  • 時系列でリストに保存
  • plotlyを使って、グラフを更新
  • Jupyter Notebook上で滑らかに描画を再表示

🔧 必要なライブラリのインポート

import requests
import time
from IPython.display import clear_output
import plotly.graph_objects as go

📊 グラフ表示のコード例(Jupyter Notebook推奨)

# 初期化
price_list = []
time_list = []

# 表示用グラフのセットアップ
fig = go.FigureWidget()
fig.add_scatter(x=[], y=[], mode='lines+markers', name='BTC/JPY')
fig.update_layout(title='ビットコイン価格(リアルタイム)',
xaxis_title='時間(更新回数)',
yaxis_title='価格(JPY)')
fig.show()

# ループ処理で更新(例:30回繰り返す)
for i in range(30):
# データ取得
response = requests.get("https://coincheck.com/api/rate/btc_jpy")
data = response.json()
price = data["rate"]

# 時系列に追加
price_list.append(price)
time_list.append(i)

# グラフ更新
with fig.batch_update():
fig.data[0].x = time_list
fig.data[0].y = price_list

# 出力をクリア(Notebook環境向け)
clear_output(wait=True)

# 少し待機(1秒)
time.sleep(1)

✅ コードの解説

  • price_listtime_listに、最新の価格と更新回数を記録します。
  • plotly.graph_objects.FigureWidget()でグラフを作成し、毎回データを更新。
  • clear_output(wait=True)を使うことで、Jupyter上で出力が上書きされ、スムーズなリアルタイム更新が可能になります。

💡 注意:このコードはJupyter Notebook環境に最適化されています。ターミナル実行ではグラフがうまく更新されません。


📈 実行イメージ

このコードを実行すると、次のようなグラフが動的に表示されます:

  • X軸:更新回数(1, 2, 3, …)
  • Y軸:その時点のBTC/JPYレート
  • グラフ:ビットコインの価格推移が折れ線グラフで可視化

これで、Pythonだけで「リアルタイムに動く仮想通貨チャート」が完成しました!
次は、この仕組みをどう活用できるのか、応用アイデアを紹介します。




6. 応用|リアルタイム通知やログ記録への応用

ここまでで、Pythonで仮想通貨の価格をリアルタイム取得し、グラフに表示するところまで実装できました。
でもこの仕組み、まだまだ発展の余地があるんです!

ここでは、さらに実用的に活用するための応用アイデアを紹介します。


📬 通知機能との連携(Slack・LINE・メールなど)

一定の価格になったら「通知してほしい」と思うこと、ありますよね?
Pythonには、SlackのWebhookやLINE Notify、Gmail APIなどと連携できる方法がたくさんあります。

例:Slackに通知を送る

import requests

webhook_url = "https://hooks.slack.com/services/XXXX/XXXX/XXXX"
message = {
"text": "ビットコインが400万円を下回りました!"
}
requests.post(webhook_url, json=message)

条件付きで価格をチェックして、一定以下になったらSlackに通知、ということも可能です。


📂 データをCSVやSQLiteに保存する

取得した価格データをファイルやデータベースに保存すれば、あとで分析にも使えます。

CSVファイルに保存する例

import csv

with open('btc_price_log.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['更新回数', '価格'])
for i, p in zip(time_list, price_list):
writer.writerow([i, p])

SQLiteデータベースに保存する例(オプション)

import sqlite3

conn = sqlite3.connect('btc_price.db')
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS prices (count INTEGER, price REAL)")

for i, p in zip(time_list, price_list):
c.execute("INSERT INTO prices VALUES (?, ?)", (i, p))

conn.commit()
conn.close()

🧠 機械学習・予測分析への発展も!

リアルタイムに収集したデータは、あとで

  • 移動平均の分析
  • 価格トレンドの可視化
  • 簡単な回帰分析(Linear Regression)
  • 機械学習を使った予測

などにも活用できます。仮想通貨の価格変動は学習素材としても面白いですよ。


💡 応用のポイントまとめ

応用例できること
通知連携指定価格になったら即SlackやLINEにお知らせ
ログ記録CSVやDBに保存してあとから確認・分析
学習データ時系列予測のモデルに使える

このように、今回のシンプルなスクリプトは、ちょっと手を加えるだけで本格的な通知・分析ツールに進化させることができます!




7. まとめ|自動データ取得で仮想通貨分析が手軽に!

今回は、Pythonを使ってCoincheckのAPIから仮想通貨の価格をリアルタイム取得し、動的にグラフ表示する方法を紹介しました。

実装のポイントは以下のとおりです:

requestsで仮想通貨の最新レートを取得
plotlyで折れ線グラフを描画し、価格の推移をリアルタイム表示
IPython.display.clear_output()を使ってJupyter上でなめらかに描画更新
✅ ログ保存や通知機能と連携すればさらに実用的に!


Pythonを使えば、仮想通貨のチャートや通知ツールを自作できてしまいます。
しかも、Webサービスを使うよりカスタマイズが自由自在

価格の変動に敏感な仮想通貨の世界では、秒単位のデータ収集や通知が武器になります。
今回のスクリプトをベースに、あなただけの自動分析ツールをぜひ作ってみてください!


🔁 あわせて読みたい

仮想通貨のデータ取得やAPI活用、可視化に関心がある方におすすめの記事を紹介します:

よくある質問(Q&A)

Q
Coincheck APIの利用に認証やAPIキーは必要ですか?
A

今回使用している「パブリックAPI(価格レート取得)」では、APIキーなどの認証は一切不要です。

Q
グラフをリアルタイム更新できないのですが?
A

IPython.display.clear_output()はJupyter Notebook環境でのみ正常に動作します。VS Codeやターミナルでは動作しない場合があります。Jupyter環境を推奨します。

Q
価格データをもっと長期間記録したいときは?
A

ループ回数を増やしたり、CSVやSQLiteに保存することで、長期データの記録が可能です。スケジューラーや常時実行アプリに発展させることもできます。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク