matplotlib
的
finance
库来绘制K线图及均线,可是
finance
库已经中止更新了,查询后得知
finance
库已经从
matplotlib
中独立出来,新库名为
mpl_finance
,但此库在使用中会出现弃用警告,查询官方文档后得知由一个更新的
mplfinance
库替代(注意中间没有下划线或横线!)。更新后的
mplfinance
库较以往更加简单易用,增长了不少新功能(renko砖形图、volume柱形图、ohlc图等),且支持多种风格,可定制多种颜色(由于国外K线图颜色与国内相反,容易产生误导),线条(默认线条较粗,影响观感)等。鉴于目前介绍
mplfinance
库的中文文档匮乏,下面介绍相关用法,以供参考。
官方文档及项目的GitHub地址:
pypi主页
GitHub项目地址
项目源码、官方文档及示例ipynb文件(已上传至百度云,方便下载,提取码:481m)python
mplfinance
库(Windows 10)安装mplfinance
库要求pandas
和matplotlib
git
pip install mplfinance --upgrade --user -i https://pypi.tuna.tsinghua.edu.cn/simple
import mplfinance as mpf
废话很少说,直接上代码。。github
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='\nA_stock %s candle_line' % (symbol), ylabel='OHLC Candles', ylabel_lower='Shares\nTraded 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/
web
示例代码介绍了一些经常使用参数及配置,基本包含K线绘制的全部内容。图例等内容与matplotlib
库使用方法相同,不做赘述。svg
了解更多请见网盘的example文件夹,包含官方的jupyter notebook详解。
本人第一次写csdn文章,若出现错误请多多包涵。若是有帮助就点个赞吧!字体
2020.4.9更新, 运行代码时不显示图像,在代码后加plt.show()
便可(import matplotlib.pyplot as plt
)。ui
本人的其余有关文章,感兴趣的朋友能够看看。spa
Python绘制MACD指标图.net