【Python】绘制股票K线图(烛状图)并增加成交量和移动平均线(详细简单)

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=‘成交量(股)’

# 绘制股价走势日k线图
import pandas as pd
import mplfinance as mpf
data = pd.read_csv('XXX.csv')  # 传入数据
# 01. 构建数据集
data_Kline0 = pd.DataFrame(
    {
        'date': data['时间'],
        'open': data['开盘'],
        'high': data['最高'],
        'low': data['最低'],
        'close': data['收盘'],
        'volume': data['总手']
    }
)
data_Kline = data_Kline0.set_index('date')  # 以日期为索引

# 02. 设置K线样式
my_color = mpf.make_marketcolors(
    up='red',
    down='green',
    edge='inherit',
    wick='i',  # wick:上下影线颜色,i表示继承up和down的颜色
    volume={'up': 'red', 'down': 'green'},  # 成交量直方图颜色,也可用i继承up和down的颜色
    ohlc='i'
)
my_style = mpf.make_mpf_style(
    marketcolors=my_color,  # 设置图表显示配色 mpf.available_styles() 可以查看所有样式
    gridaxis='both',  # 设置网格位置
    gridstyle='-.',  # 设置网格线线型
    rc={'font.family': 'STSong'}  # 设置中文兼容
)

# 03. 绘图
mpf.plot(
    data_Kline,
    type='candle',  # 设置显示样式 选项['ohlc','candle','line','renko','pnf']
    title='股价走势K线图',  # 设置图标题
    ylabel='股价(元)',  # 设置y轴标题
    style=my_style,  # 应用上面命令设置的样式
    show_nontrading=False,  # 是否显示非交易日,默认为False:显示
    volume=True,  # 下方是否显示成交量,默认为False
    ylabel_lower='成交量(股)',  # 成交量图的Y轴标题
    datetime_format='%Y年%m月%d日',  # x轴的时间显示格式
    xrotation=45,  # x轴的时间坐标旋转角度
    linecolor='#00ff00',  # 若type='line'设置线条颜色
    tight_layout=False  # 是否紧密显示
)

笔者绘制的恒瑞医药公司上市以来的K线图(附带成交量)如下:
在这里插入图片描述
**

添加移动平均线

**
在03.绘图步骤中
代码mpf.plot()中添加命令:mav(5,10,30) # 添加5,10,30日移动平均线
即可
也可修改为自己想要的任意日移动平均线

以下是笔者绘制的K线图:
在这里插入图片描述

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Imp_北溟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值