使用pandas和malfinace绘制k线图
时间: 2023-11-27 17:45:52 浏览: 81
要使用 `pandas` 和 `malfinance` 绘制 K 线图,可以按照以下步骤进行:
1. 从 Yahoo Finance 下载股票数据,并将其保存在一个 `pandas.DataFrame` 对象中。例如:
```
from malfinance import download_data
# 下载 AAPL 的股票数据
data = download_data('AAPL', '2010-01-01', '2021-01-01')
# 查看数据
print(data.head())
```
2. 创建一个 `pandas.DataFrame` 对象,用于存储 K 线图的数据。例如:
```
import pandas as pd
k_data = pd.DataFrame({
'date': data.index,
'open': data['Open'],
'high': data['High'],
'low': data['Low'],
'close': data['Close']
})
```
在这个例子中,我们创建了一个 `k_data` 数据框,其中包含了 K 线图所需的日期、开盘价、最高价、最低价和收盘价数据。
3. 使用 `mplfinance` 包绘制 K 线图。例如:
```
import mplfinance as mpf
# 绘制 K 线图
mpf.plot(k_data, type='candle', mav=(5, 10, 20), volume=True)
```
在这个例子中,我们使用 `mpf.plot()` 函数绘制了 K 线图。我们指定了要绘制的数据框 `k_data`,并指定了 K 线图的类型为 `candle`(蜡烛图)。我们还指定了要绘制的均线类型(即 5、10 和 20 日均线),以及是否绘制成交量图。
完整的代码如下所示:
```
import pandas as pd
from malfinance import download_data
import mplfinance as mpf
# 下载 AAPL 的股票数据
data = download_data('AAPL', '2010-01-01', '2021-01-01')
# 创建 K 线图数据框
k_data = pd.DataFrame({
'date': data.index,
'open': data['Open'],
'high': data['High'],
'low': data['Low'],
'close': data['Close']
})
# 绘制 K 线图
mpf.plot(k_data, type='candle', mav=(5, 10, 20), volume=True)
```
这个代码会在一个新的窗口中绘制出 AAPL 的 K 线图,并显示在屏幕上。如果你想将图形保存到文件中,可以使用 `savefig()` 方法,例如:
```
mpf.plot(k_data, type='candle', mav=(5, 10, 20), volume=True, savefig='k_line.png')
```
这个代码会将图形保存到当前工作目录下的 `k_line.png` 文件中。
阅读全文