時系列データから日次変化率を計算してヒートマップを作成する

スポンサーリンク

ライブラリをインストールする

!pip install yfinance

ライブラリを読み込む

import numpy as np
import pandas as pd
import yfinance as yf
import matplotlib.pyplot as plt
import seaborn as sns

時系列データから日次変化率を計算する

tickers=["AAPL", "CRWD", "COST", "GOOG"] #ティッカーを指定
x=2 #ヒートマップのxサイズを指定
y=2 #ヒートマップのyサイズを指定

df=yf.download(tickers, period="2d")["Close"] #2日分のデータを取得
df=df.pct_change() #日次変化率を取得
pdata=(df.iloc[-1].to_numpy()*100).round(2) #%に変換
data=pdata.reshape(x, y) #dataをリシェイプ

ラベルを作成する

labels=["{}\n{}".format(a, b) for a, b in zip(tickers, pdata)] #リスト内包表記でラベルを作成
labels=np.array(labels).reshape(x, y) #labelsをリシェイプ

ヒートマップを作成する

annotを指定してラベルを表示します。非数値ラベルを使うときは、fmt=””を追加します。

sns.set(font_scale=1) #フォントサイズを指定
plt.figure(figsize=(9, 9)) #ヒートマップサイズを指定

#cmapでカラーを指定し、centerで中央値を指定
sns.heatmap(data, annot=labels, fmt="", cmap="RdYlGn", center=0, square=True, xticklabels=False, yticklabels=False)

cbar=Falseでカラーバーを非表示にできます。

コメント

タイトルとURLをコピーしました