Pythonで株価データを取得し、グラフ化


## サンプルコード１

```
import pandas_datareader.data as web
import datetime
import matplotlib.pyplot as plt

start = datetime.datetime(2020, 1, 1)
end = datetime.datetime(2021, 12, 31)
df = web.DataReader("AAPL", "yahoo", start, end)

print(df.head())

plt.plot(df.index, df['Close'])
plt.title('AAPL stock price')
plt.xlabel('Date')
plt.ylabel('Price ($)')
plt.show()
```

## 解説
ライブラリのインストール
Pythonで株価データを取得するためには、pandas-datareaderライブラリを使用することができます。また、グラフを描画するためにmatplotlibライブラリも必要です。これらのライブラリをインストールするには、次のコマンドを実行します。

!pip install pandas-datareader matplotlib
データの取得
pandas-datareaderライブラリを使用して、株価データを取得します。以下の例では、AAPL（Apple Inc.）の株価データを取得しています。

```
Python
import pandas_datareader.data as web
import datetime

start = datetime.datetime(2020, 1, 1)
end = datetime.datetime(2021, 12, 31)
df = web.DataReader("AAPL", "yahoo", start, end)
```

上記の例では、2020年1月1日から2021年12月31日までのAAPL（Apple Inc.）の株価データをyahooファイナンスから取得しています。

データの確認
取得したデータを確認するために、DataFrameのhead()関数を使用することができます。

print(df.head())
グラフの作成
matplotlibライブラリを使用して、株価データをグラフ化します。
以下の例では、AAPL（Apple Inc.）の株価を折れ線グラフで表示しています。

```
Python
import matplotlib.pyplot as plt

plt.plot(df.index, df['Close'])
plt.title('AAPL stock price')
plt.xlabel('Date')
plt.ylabel('Price ($)')
plt.show()
```
上記の例では、x軸には日付、y軸には株価を表示しています。また、グラフのタイトル、x軸、y軸のラベルも設定しています。最後に、plt.show()関数を使用してグラフを表示します。



## サンプルコード２

```
import pandas_datareader as pdr
import matplotlib.pyplot as plt

# Alpha VantageからAPIキーを取得（無料）
api_key = "YOUR_API_KEY"

# 株価データを取得（例：ソフトバンクグループ）
df = pdr.DataReader("9984.T", "av-daily", start="2021-01-01", end="2021-03-10", api_key=api_key)

# グラフにタイトルと軸ラベルを設定
plt.title("SoftBank Group Stock Price")
plt.xlabel("Date")
plt.ylabel("Price (JPY)")

# グラフに株価データをプロット
plt.plot(df.index, df["close"])

# グラフを表示
plt.show()
```

このPythonコードは、Pandas DataReaderを使用して、Alpha Vantage APIから株価データを取得し、Matplotlibを使用して株価グラフをプロットして表示するものです。

## 解説

モジュールのインポート

import pandas_datareader as pdr
import matplotlib.pyplot as plt

まず、pandas_datareaderとmatplotlibモジュールをインポートします。

APIキーの取得

api_key = "YOUR_API_KEY"

Alpha VantageからAPIキーを取得して、変数api_keyに代入します。
無料で取得できます。

株価データの取得

df = pdr.DataReader("9984.T", "av-daily", start="2021-01-01", end="2021-03-10", api_key=api_key)

pandas_datareaderを使用して、Alpha Vantage APIから株価データを取得し、PandasのDataFrameに格納します。
ここでは、DataReader関数を使用して、株価コード（"9984.T"はソフトバンクグループのコード）、データの種類（"av-daily"は日次株価データ）、期間（"2021-01-01"から"2021-03-10"まで）、APIキーを指定しています。

グラフの設定

plt.title("SoftBank Group Stock Price")
plt.xlabel("Date")
plt.ylabel("Price (JPY)")

Matplotlibを使用して、グラフのタイトル、横軸ラベル、縦軸ラベルを設定します。

株価データのプロット

plt.plot(df.index, df["close"])

Pandas DataFrameから、株価の日付（インデックス）と終値の列を取得して、plt.plot()関数でグラフにプロットします。

グラフの表示

plt.show()

plt.show()関数で、グラフを表示します。




## メソッド説明

plt.plot()とplt.show()は、matplotlibライブラリでグラフを描画するために使用される関数です。

plt.plot()は、グラフを描画するためのメソッドであり、引数として横軸と縦軸のデータを指定します。
例えば、以下のように書きます。

plt.plot(x, y)

ここで、xは横軸のデータ、yは縦軸のデータを表します。
このコードを実行することで、x軸にxの値、y軸にyの値を持つグラフが描画されます。

一方、plt.show()は、描画したグラフを表示するためのメソッドです。
このメソッドを呼び出すことで、グラフが画面に表示されます。


plt.show()
上記のコードは、plt.plot(x, y)で描画したグラフを表示するために、plt.show()を呼び出しています。

つまり、plt.plot()はグラフの描画のみを行い、plt.show()は描画されたグラフを表示するためのメソッドです。グラフを描画した後にplt.show()を呼び出すことで、描画したグラフを表示することができます。