【python】pandasで表示したグラフをmatplotlib.pyplotで画像保存する

株価等を取得して、画像で保存したかったのでメモ

plt.savefig("sample.png")でやりたかったんやが

'DataFrame' object has no attribute 'savefig'

というエラーに悩まされ、以下の記載の方法で何か解決した

plt.plot().get_figure().savefig("Sample.png")

以下サンプル

import pandas as pd
#日付変換用
from datetime import datetime as dt
#グラフ保存用
import matplotlib.pyplot as plt

#URLの指定
url = ["https://finance.yahoo.com/quote/AAPL/history?p=AAPL","https://finance.yahoo.com/quote/AAL/history?p=AAL"]
#HTMLの読み込み
htmldata = pd.read_html(url[0],header=0)

#不要なデータの変換
htmldata[0]["Adj Close**"] = pd.to_numeric(htmldata[0]["Adj Close**"],errors="coerce")

#不要なデータ列の削除
htmldata[0].dropna(inplace=True)

#日付を変換させる
htmldata[0]["NewDate"] = [dt.strptime(i,"%b %d, %Y") for i in htmldata[0]["Date"]]

#インデックスに変換
htmldata[0].set_index("NewDate",inplace=True)

htmldata[0]["Adj Close**"].plot(title="price",grid=True)

#csv
htmldata[0].to_csv("sample.csv")

plt = htmldata[0]["Adj Close**"]

plt.plot().get_figure().savefig("Sample.png")
https://www.it-swarm-ja.com/ja/python/python-pandas-matplotlib%E3%81%AEsavefig%E3%81%A7%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%EF%BC%88axessubplot%EF%BC%89%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B/1043277289/

この記事が気に入ったらサポートをしてみませんか?