【Python】グラフを重ねて表示するツール
株価・価格の推移について、正の相関や逆の相関を確認するために、2つのグラフを重ねて表示したいことがある。しかし、増加率が違うので、軸を分けたい。
しかし、この作業が、そこそこめんどくさい。
というわけで、右と左で2軸に分けて、グラフを重ねて表示するテンプレートを用意しました。
良かったら、下記のティッカーを変更して使ってみてください。
(もしくは、データフレームにデータを格納する部分から変更)
codelist = ["BTC-USD","GLD"]
コード全体は下記の通り。
# !pip install yfinance
import pandas as pd
import datetime
import yfinance as yf
import matplotlib.pyplot as plt
from matplotlib import cm
%matplotlib inline
# 表示期間
start = datetime.date.today() - datetime.timedelta(days=180)
end = datetime.date.today()
# 表示対象
codelist = ["BTC-USD","GLD"]
# データ取得
data_stock = yf.download(codelist, start=start, end=end)["Adj Close"]
fig, ax1 = plt.subplots(figsize=(8, 4.5),facecolor="white")
# ax1とax2を関連させる
ax2 = ax1.twinx()
# 1つ目のデータをグラフ化
ax1.plot(data_stock[codelist[0]].dropna(),
color="blue", label=codelist[0],linewidth=2,alpha=0.5)
# 2つ目のデータをグラフ化
ax2.plot(data_stock[codelist[1]].dropna(),
color="red", label=codelist[1],linewidth=2,alpha=0.5)
# 凡例
handler1, label1 = ax1.get_legend_handles_labels()
handler2, label2 = ax2.get_legend_handles_labels()
# 凡例をまとめて出力
ax1.legend(handler1 + handler2, label1 + label2, loc=2, borderaxespad=0.5)
# 軸を45度傾けて表示
ax1.tick_params(axis='x', labelrotation=45)
plt.show()
# ここまで
実行すると、下記のようなグラフが出力されます。
これをみると、ビットコインとゴールドの相関関係が1月を転機にして逆相関になっているようにみえますね。
何かの参考になれば幸いです。
ここから先は
0字
¥ 100
この記事が気に入ったらサポートをしてみませんか?