python - 如何使用数据框在烛台图上绘制交易量
问题描述
我刚开始使用 Python,所以这里有点菜鸟。我设法弄清楚如何从 API 获取数据以检索股票数据。重新索引后,列如下所示:[日期,1. 开盘,2. 收盘,3. 高,4. 低,5. 成交量]
我使用了 MPL_finance 和 matplotlib,现在我在图表中得到了一个漂亮的烛台,成功了!:) 但是我一直在想如何在相同的图中添加音量以进行保存。卷位于 5. 卷列下的数据框中。谁能帮我吗?谢谢!
代码:
import matplotlib.pyplot as plt
from mpl_finance import candlestick_ohlc
import pandas as pd
import matplotlib.dates as mpl_dates
stock_names=['AAPL']
ts = TimeSeries(key='xxx',output_format='pandas')
data, meta_data = ts.get_daily(symbol=stock_names, outputsize='compact')
data = df.reset_index()
#slice to make the chart look better
data = data[:-50]
plt.style.use('ggplot')
#Extracting Data for plotting
ohlc = data.loc[:, ['date', '1. open', '2. high', '3. low', '4. close']]
ohlc['date'] = pd.to_datetime(ohlc['date'])
ohlc['date'] = ohlc['date'].apply(mpl_dates.date2num)
ohlc = ohlc.astype(float)
#Creating Subplots
fig, ax = plt.subplots()
candlestick_ohlc(ax, ohlc.values, width=0.6, colorup='green', colordown='red', alpha=0.8)
#Setting labels & titles
ax.set_xlabel('Date')
ax.set_ylabel('Price')
fig.suptitle('Daily Candlestick Chart')
#Formatting Date
date_format = mpl_dates.DateFormatter('%d-%m-%Y')
ax.xaxis.set_major_formatter(date_format)
fig.autofmt_xdate()
plt.show()
解决方案
尝试新版本的 matplotlib 金融。它自动处理 DataFrames 和 Volume。文档和包在这里:
https://pypi.org/project/mplfinance/
安装:pip install --upgrade mplfinance
注意:包名不再有破折号或下划线:现在是 mplfinance(不是 mpl-finance,也不是 mpl_finance)。