WTIの価格を得る
pip install yfinance
でインストール後
import yfinance as yf # リアルタイムのWTI価格を取得 wti = yf.Ticker("CL=F") price = wti.history(period="1d")['Close'].iloc[-1] # 最新の終値 print(f"Current WTI Price: ${price}")
とすると
[*********************100%***********************] 1 of 1 completed Open High Low Close Adj Close Volume Date 2023-01-03 80.570000 81.500000 76.599998 76.930000 76.930000 338520 2023-01-04 77.250000 77.419998 72.730003 72.839996 72.839996 352434 2023-01-05 73.250000 74.919998 72.459999 73.669998 73.669998 300731 2023-01-06 73.970001 75.470001 73.239998 73.769997 73.769997 258128 2023-01-09 73.470001 76.739998 73.470001 74.629997 74.629997 329290
と去年のものが出る
wti.history(period=”1d”) が1日分のデータではなく、
日次の複数日分のデータを取得しています。
これは、yfinanceが日次の過去データを返しているためです。
リアルタイムの価格を取得したい場合は、
次のように interval=”1m” を指定して、
最新の1分ごとのデータを取得することができます。
また、tail(1)で最新の行だけを取得するようにすると良い
とのことなのでコード変更
import yfinance as yf # リアルタイムのWTI価格を取得(1分間隔の最新データ) wti = yf.Ticker("CL=F") data = wti.history(period="1d", interval="1m").tail(1) # 最新の1分データ price = data['Close'].iloc[-1] # 最新の終値 print(f"Current WTI Price: ${price}")
これなら
Current WTI Price: $75.55999755859375
となる
1ヶ月間のデータを取得し折線グラフで表示
yfinance を使用して過去1ヶ月間の日次データを取得し、
matplotlib を使用して折れ線グラフを描画
import yfinance as yf import matplotlib.pyplot as plt # WTIデータを取得(1ヶ月間の日次データ) wti = yf.Ticker("CL=F") data = wti.history(period="1mo", interval="1d") # 折れ線グラフの描画 plt.figure(figsize=(12, 6)) plt.plot(data.index, data['Close'], marker='o', linestyle='-', color='b') plt.title('WTI Price Trend Over Last Month') plt.xlabel('Date') plt.ylabel('WTI Price ($)') plt.xticks(rotation=45) plt.grid(True) plt.tight_layout() plt.show()
これで表示される
次にスクロール機能をつける
pip install plotly
の後
import yfinance as yf import plotly.graph_objs as go # WTIデータを取得(3年間の月次データ) wti = yf.Ticker("CL=F") data_3yr = wti.history(period="3y", interval="1mo") # Plotlyグラフの作成 fig = go.Figure() # 折れ線グラフを追加 fig.add_trace(go.Scatter(x=data_3yr.index, y=data_3yr['Close'], mode='lines+markers', name='WTI Price')) # グラフのレイアウト設定 fig.update_layout( title='WTI Price Trend Over Last 3 Years', xaxis_title='Date', yaxis_title='WTI Price ($)', xaxis_rangeslider_visible=True, # スクロールバーを追加 ) # グラフを表示 fig.show()
これだと出ない
1年にしてみる
import yfinance as yf import plotly.graph_objs as go # WTIデータを取得(1年間の月次データ) wti = yf.Ticker("CL=F") data_1yr = wti.history(period="1y", interval="1mo") # Plotlyグラフの作成 fig = go.Figure() # 折れ線グラフを追加 fig.add_trace(go.Scatter(x=data_1yr.index, y=data_1yr['Close'], mode='lines+markers', name='WTI Price')) # グラフのレイアウト設定 fig.update_layout( title='WTI Price Trend Over Last 1 Year', xaxis_title='Date', yaxis_title='WTI Price ($)', xaxis_rangeslider_visible=True, # スクロールバーを追加 ) # グラフを表示 fig.show()
これならOK