• 用mplfinance库定制A股常用的K线、均线图


    转载:https://blog.csdn.net/qq_41437512/article/details/105319421

    安装`mplfinance`库(Windows 10)
    导入
    示例代码
    总结
    推荐阅读

    近日需要使用 matplotlib的 finance库来绘制K线图及均线,但是 finance库已经停止更新了,查询后得知 finance库已经从 matplotlib中独立出来,新库名为 mpl_finance,但此库在使用中会出现弃用警告,查询官方文档后得知由一个更新的 mplfinance库替代(注意中间没有下划线或横线!)。更新后的 mplfinance库较以往更加简单易用,增加了很多新功能(renko砖形图、volume柱形图、ohlc图等),且支持多种风格,可定制多种颜色(因为国外K线图颜色与国内相反,容易产生误导),线条(默认线条较粗,影响观感)等。鉴于目前介绍 mplfinance库的中文文档匮乏,下面介绍相关用法,以供参考。
    官方文档及项目的GitHub地址:
    pypi主页
    GitHub项目地址
    项目源码、官方文档及示例ipynb文件(已上传至百度云,方便下载,提取码:481m)

    安装mplfinance库(Windows 10)
    安装mplfinance库要求pandas和matplotlib

    pip install mplfinance --upgrade --user -i https://pypi.tuna.tsinghua.edu.cn/simple
    1
    导入
    import mplfinance as mpf
    1
    废话不多说,直接上代码。。

    示例代码
    import mplfinance as mpf
    import matplotlib as mpl# 用于设置曲线参数
    from cycler import cycler# 用于定制线条颜色
    import pandas as pd# 导入DataFrame数据
    import matplotlib.pyplot as plt


    def import_csv(stock_code):
    # 导入股票数据
    df = pd.read_csv(stock_code + '.csv')
    # 格式化列名,用于之后的绘制
    df.rename(
    columns={
    'date': 'Date', 'open': 'Open',
    'high': 'High', 'low': 'Low',
    'close': 'Close', 'volume': 'Volume'},
    inplace=True)
    # 转换为日期格式
    df['Date'] = pd.to_datetime(df['Date'])
    # 将日期列作为行索引
    df.set_index(['Date'], inplace=True)
    return df

    # 导入数据
    symbol = 'sh600519'
    period = 100
    df = import_csv(symbol)[-period:]

    # 设置基本参数
    # type:绘制图形的类型,有candle, renko, ohlc, line等
    # 此处选择candle,即K线图
    # mav(moving average):均线类型,此处设置7,30,60日线
    # volume:布尔类型,设置是否显示成交量,默认False
    # title:设置标题
    # y_label:设置纵轴主标题
    # y_label_lower:设置成交量图一栏的标题
    # figratio:设置图形纵横比
    # figscale:设置图形尺寸(数值越大图像质量越高)
    kwargs = dict(
    type='candle',
    mav=(7, 30, 60),
    volume=True,
    title=' A_stock %s candle_line' % (symbol),
    ylabel='OHLC Candles',
    ylabel_lower='Shares Traded Volume',
    figratio=(15, 10),
    figscale=5)

    # 设置marketcolors
    # up:设置K线线柱颜色,up意为收盘价大于等于开盘价
    # down:与up相反,这样设置与国内K线颜色标准相符
    # edge:K线线柱边缘颜色(i代表继承自up和down的颜色),下同。详见官方文档)
    # wick:灯芯(上下影线)颜色
    # volume:成交量直方图的颜色
    # inherit:是否继承,选填
    mc = mpf.make_marketcolors(
    up='red',
    down='green',
    edge='i',
    wick='i',
    volume='in',
    inherit=True)

    # 设置图形风格
    # gridaxis:设置网格线位置
    # gridstyle:设置网格线线型
    # y_on_right:设置y轴位置是否在右
    s = mpf.make_mpf_style(
    gridaxis='both',
    gridstyle='-.',
    y_on_right=False,
    marketcolors=mc)

    # 设置均线颜色,配色表可见下图
    # 建议设置较深的颜色且与红色、绿色形成对比
    # 此处设置七条均线的颜色,也可应用默认设置
    mpl.rcParams['axes.prop_cycle'] = cycler(
    color=['dodgerblue', 'deeppink',
    'navy', 'teal', 'maroon', 'darkorange',
    'indigo'])

    # 设置线宽
    mpl.rcParams['lines.linewidth'] = .5

    # 图形绘制
    # show_nontrading:是否显示非交易日,默认False
    # savefig:导出图片,填写文件名及后缀
    mpf.plot(df,
    **kwargs,
    style=s,
    show_nontrading=False,
    savefig='A_stock-%s %s_candle_line'
    % (symbol, period) + '.jpg')
    plt.show()

    配色表图片引用自finthon.com/matplotlib-color-list/

    总结
    示例代码介绍了一些常用参数及配置,基本包含K线绘制的所有内容。图例等内容与matplotlib库使用方法相同,不作赘述。

    了解更多请见网盘的example文件夹,包含官方的jupyter notebook详解。
    本人第一次写csdn文章,若出现错误请多多包涵。如果有帮助就点个赞吧!

    2020.4.9更新, 运行代码时不显示图像,在代码后加plt.show()即可(import matplotlib.pyplot as plt )。

    推荐阅读
    本人的其他有关文章,感兴趣的朋友可以看看。

    Python绘制MACD指标图

    Python绘制BOLL布林线指标图

    Python绘制RSI相对强弱指标图

  • 相关阅读:
    使用JQuery结合HIghcharts实现从后台获取JSON实时刷新图表
    Highcharts获取json数据展现pie饼图
    java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
    hibernate 使用sql 查询(setResultTransformer)
    createSQLQuery的addEntity跟setResultTransformer方法
    spring+hibernate中的Result object returned from HibernateCallback isn't a List
    改变MyEclipse创建JSP时默认的pageEncoding编码
    poj 1330 Nearest Common Ancestors 单次LCA/DFS
    poj 1328 Radar Installation 排序贪心
    brainfuck 解释器
  • 原文地址:https://www.cnblogs.com/GavinSimons/p/14642728.html
Copyright © 2020-2023  润新知