【python技术】使用akshare、pandas、mplfinance绘制红绿色K线图简单示例

python中的mplfinance库是基于matplotlib库开发的一个专门用于绘制股票数据的图表的第三方库,它提供了一系列函数和类,用于绘制各种类型的股票图表,包括K线图、成交量图和技术指标图等。

这里简单写个示例,我用的mac系统,字体采用STHeiti。如果你是

windows系统,字体可以采用SimHei 解决中文乱码。


from datetime import datetime
import matplotlib.pyplot as plt
import akshare as ak  # 升级到最新版
import pandas as pd
import mplfinance as mpf


#解决中文乱码

plt.rcParams["font.sans-serif"] = ["STHeiti"]

plt.rcParams["axes.unicode_minus"] = False

def kline(symbol, start_time, end_time, stock_name):
    # 利用 AKShare 获取股票的后复权数据,这里只获取前 6 列
    stock_hfq_df = ak.stock_zh_a_hist(symbol, adjust="hfq").iloc[:, :6]

    # 处理字段命名
    stock_hfq_df.columns = [
        'date',
        'open',
        'close',
        'high',
        'low',
        'volume',
    ]
    # 把 date 作为日期索引
    stock_hfq_df.index = pd.to_datetime(stock_hfq_df['date'])
    stock_hfq_df = stock_hfq_df[start_time:end_time]

    #print(stock_hfq_df)
    # 创建一个marketcolors对象,并设置颜色参数
    marketcolors = mpf.make_marketcolors(up='r', down='g', volume='inherit')

    # 创建一个style对象,并将marketcolors对象传递给它
    style = mpf.make_mpf_style( marketcolors=marketcolors, edgecolor='k', rc={'font.family': 'STHeiti'})

    # 添加图表
    mpf.plot(stock_hfq_df, type='candle', style=style, title= stock_name + "K线图" ,
             ylabel="价格",
             ylabel_lower="成交量",
             mav=(5, 10, 20), volume=True, show_nontrading=False)


if __name__ == '__main__':
    kline("603348", "2024-01-01", "2024-04-26", "文灿股份");

运行结果
在这里插入图片描述

其他方法这里就不一一演示了

绘制布林带指标图

mpf.plot(stock_hfq_df, type=‘candle’, addplot=mpf.make_addplot(

stock_hfq_df[[‘Bollinger_High’, ‘Bollinger_Low’]]))

绘制MACD指标图

mpf.plot(stock_hfq_df, type=‘candle’, addplot=mpf.make_addplot

(stock_hfq_df[[‘MACD’, ‘MACD_Signal’, ‘MACD_Histogram’]]))

绘制KDJ指标图

mpf.plot(stock_hfq_df, type=‘candle’, addplot=mpf.make_addplot(

stock_hfq_df[[‘K’, ‘D’, ‘J’]]))



如果觉得我的分享对你有所帮助,不吝啬点个赞给个关注。

原文链接:【python技术】使用akshare、pandas、mplfinance绘制红绿色K线图简单示例

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值