Python绘制股票K线图(烛状图)并增加成交量和移动平均线:
准备工作: 1.这里需要使用到pandas和mplfinance工具库(自行安装好)。 2.下载好股票数据,需要包括:时间、开盘价、最高价、最低价、收盘价,五列数据,另外,如果还需要在K线图中显示总手(成交量),则需要下载总手(成交量)数据。 3.保存为csv格式,同时检查下载的数据,是否符合要求(格式,数据,缺失值,异常值都提前处理好)。
准备工作完成后就可以开始绘制K线图了,下面的程序绘制的K线图附带成交量(总手),如果不需要,则将程序中的以下三条命令删除即可: 删除 01.构建数据集中的 ‘volume’: data[‘总手’] 02.设置K线样式中的 volume={‘up’: ‘red’, ‘down’: ‘green’} 03.绘图中的 volume=True, ylabel_lower=‘成交量(股)’
import pandas as pd
import mplfinance as mpf
data = pd.read_csv('XXX.csv')
data_Kline0 = pd.DataFrame(
{
'date': data['时间'],
'open': data['开盘'],
'high': data['最高'],
'low': data['最低'],
'close': data['收盘'],
'volume': data['总手']
}
)
data_Kline = data_Kline0.set_index('date')
my_color = mpf.make_marketcolors(
up='red',
down='green',
edge='inherit',
wick='i',
volume={'up': 'red', 'down': 'green'},
ohlc='i'
)
my_style = mpf.make_mpf_style(
marketcolors=my_color,
gridaxis='both',
gridstyle='-.',
rc={'font.family': 'STSong'}
)
mpf.plot(
data_Kline,
type='candle',
title='股价走势K线图',
ylabel='股价(元)',
style=my_style,
show_nontrading=False,
volume=True,
ylabel_lower='成交量(股)',
datetime_format='%Y年%m月%d日',
xrotation=45,
linecolor='#00ff00',
tight_layout=False
)
笔者绘制的恒瑞医药公司上市以来的K线图(附带成交量)如下: 还可以添加移动平均线: 在03.绘图步骤中 代码mpf.plot()中添加命令:mav(5,10,30) # 添加5,10,30日移动平均线 即可 也可修改为自己想要的任意日移动平均线
以下是笔者绘制的K线图:
|