前提・実現したいこと
Pythonを使ってエクセルから銘柄コートを取得してチャートを出力・保存後に画像のようにエクセルの貼り付けを考えています。
発生している問題・エラーメッセージ
100銘柄中の80銘柄程取得すると以下のエラーがでます。
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'
また、図のようにエクセルに保存した画像を貼り付ける方法のご教示をよろしくお願いします。
該当のソースコード
!pip install mplfinance
import pandas as pd
import pandas_datareader.data as web
import matplotlib.pyplot as plt
import mplfinance as mpf
import datetime
import time #timeモジュールのインポート
import openpyxl
import numpy as np
stratTime = time.time() #プログラムの開始時刻
end = datetime.datetime.today()#期間
start='2019-04-01'
wb = openpyxl.load_workbook('D:/')
sheet = wb.get_sheet_by_name('Sheet1')
for i in range(2,5):
a=(sheet.cell(row=i, column=2).value) #銘柄コード取得
b=(sheet.cell(row=i, column=3).value) #銘柄名取得
ticker=str(a) + ".jp" print(ticker) print(b) df=web.DataReader(ticker, "stooq",start,end).dropna()#データ取得 df.sort_index(ascending=True,inplace=True) df1=df.resample('W').agg({'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last','Volume':'sum'}) df2=df.resample('M').agg({'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last','Volume':'sum'}) mpf.plot(df1, type='candle', volume=True, mav=(5,13,26), style='charles',tight_layout=True) mpf.plot(df2, type='candle', volume=True, mav=(5,13,26), style='charles',tight_layout=True) mpf.plot(df1, type='candle', volume=True, mav=(5,13,26), style='charles',tight_layout=True, savefig=str(a)+"_"+str(b)+"_週足.jpeg") mpf.plot(df2, type='candle', volume=True, mav=(5,13,26), style='charles',tight_layout=True, savefig=str(a)+"_"+str(b)+"_月足.jpeg")
endTime = time.time() #プログラムの終了時刻
runTime = endTime - stratTime #処理時間
print(runTime) #処理時間を表示
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/07 12:44 編集