次のような構造のデータフレームがあります。
Date ticker adj_close
0 2016-11-21 AAPL 111.730
1 2016-11-22 AAPL 111.800
2 2016-11-23 AAPL 111.230
3 2016-11-25 AAPL 111.790
4 2016-11-28 AAPL 111.570
...
8 2016-11-21 ACN 119.680
9 2016-11-22 ACN 119.480
10 2016-11-23 ACN 119.820
11 2016-11-25 ACN 120.740
...
adj_close
対Date
のティッカーに基づいてプロットするにはどうすればよいですか?
使用できます:
df.plot(x='Date',y='adj_close')
または、事前にインデックスをDate
に設定しておくと、必要な列を簡単にプロットできます。
df.set_index('Date', inplace=True)
df['adj_close'].plot()
ticker
で1つの系列を持つチャートが必要な場合groupby の前に:
df.set_index('Date', inplace=True)
df.groupby('ticker')['adj_close'].plot(legend=True)
単純なプロット、
使用できます:
df.plot(x='Date',y='adj_close')
または、事前にインデックスをDate
に設定しておくと、必要な列を簡単にプロットできます。
df.set_index('Date', inplace=True)
df['adj_close'].plot()
grouped = df.groupby('ticker')
ncols=2
nrows = int(np.ceil(grouped.ngroups/ncols))
fig, axes = plt.subplots(nrows=nrows, ncols=ncols, figsize=(12,4), sharey=True)
for (key, ax) in Zip(grouped.groups.keys(), axes.flatten()):
grouped.get_group(key).plot(ax=ax)
ax.legend()
plt.show()
上記のジュリアンの答えと同様に、私は次の点で成功しました。
fig, ax = plt.subplots(figsize=(10,4))
for key, grp in df.groupby(['ticker']):
ax.plot(grp['Date'], grp['adj_close'], label=key)
ax.legend()
plt.show()
Matlabでさらに制御したい場合、このソリューションはより関連性があります。
: https://stackoverflow.com/a/52526454/10521959に触発されたソリューション