Python数据可视化:mplfinance创建蜡烛图
Posted 码力十足学量化
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据可视化:mplfinance创建蜡烛图相关的知识,希望对你有一定的参考价值。
matplotlib的 finance库由mplfinance库替代做为专用于金融数据的可视化分析模块,
是基于matplotlib的实用模块程序。使用前必须确保已经安装了matplotlib和pandas。
1.使用pip安装
pip install mplfinance
2.mpf.plot()函数
2.1 mpf.plot(df)
df必须是包含Open、High、Low和Close数据,带有Pandas DatetimeIndex的Pandas DataFrame对象。
mpf.plot(data,type,mav,volume,show_nontrading,title,ylable, figratio,addplot,style)
函数部分参数如下:
1.type设置图像类型,ohlc,candle,line,renko;
2.mav绘制成交量;
3.volume=True绘制成交量;
4.默认show_nontrading=False不显示交易日,K线之间没有间隔,设为True时显示非交易日,K线之间有间隔;
5.title设置图像标题;
6.ylable设置主图Y轴标题,ylable_lower设置第一个副图的Y轴标题;
7.figratio设置图形的纵横比,figscale设置图像的缩放比例,tight_layout设置图像为紧密布局;
8.addplot添加附图和子图,需要和make_addplot()函数配合使用;
9.style设置整个图像的样式,需要和make_mpf_style()函数配合使用。
2.1.1 获取股票数据
import pandas as pd
import matplotlib.pyplot as plt
import mplfinance as mpf
plt.rcParams['font.sans-serif'] = ['simHei'] # 以黑体显示中文
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像符号“-”显示为放块的问题
import tushare as ts # tushare版本需大于1.2.10
pd.set_option('max_rows', None)
pd.set_option('max_columns', None)
pd.set_option('expand_frame_repr', False)
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 输入your token,初始化pro接口
pro = ts.pro_api('你的tushare token')
# 后复权行情
df = ts.pro_bar(ts_code='001227.SZ', adj='hfq', start_date='20000101', end_date='20220426')
df = df.drop(columns=['change', 'pct_chg'])
df['trade_date'] = pd.to_datetime(df['trade_date'], format='%Y-%m-%d')
df.rename(columns='vol': 'volume', inplace=True)
df = df[['trade_date', 'open', 'high', 'low', 'close', 'volume']]
df.set_index('trade_date', drop=True, inplace=True)
df.sort_values(by=['trade_date'], axis=0, ascending=True, inplace=True)
print(df)
2.1.2 股票数据示例
2.1.3 绘图示例
默认绘图类型是“ohlc”。
mpf.plot(df)
2.1.4 更改绘图类型
可以使用关键字参数type指定其他绘图类型,
例如type=‘candle’、type=‘line’、type=‘renko’ 或 type=‘pnf’。
mpf.plot(df,type='candle')
mpf.plot(df,type='line')
mpf.plot(df,type='renko')
mpf.plot(df,type='pnf')
2.1.5 绘制均线
使用mav关键字绘制移动平均线:
①对单个移动平均线使用标量
②对多个移动平均线使用元组或整数列表
mpf.plot(df,type='candle',mav=(5,10,30))
2.1.6 绘制成交量
mpf.plot(df,type='candle',mav=(5,10,30),volume=True)
2.1.7 非交易日图形显示
show_nontrading 关键字显示非交易日,show_nontrading=True将显示数据中第一个时间戳和 最后一个时间戳之间的所有日期(所有时间间隔)。
show_nontrading=False(默认值)将仅显示数据中具有实际行的日期时间。
mpf.plot(df,type='candle',mav=(5,10,30),volume=True,show_nontrading=True)
2.1.8 设置图像的标题
mpf.plot(df,type=‘candle’,mav=(5,10,30),volume=True,show_nontrading=False,title=‘001227-candle’)
2.1.9 设置主副图Y轴标题
使用ylabel设置Y轴标题,ylabel_lower设置第一个副图的Y轴标题
mpf.plot(df,type=‘candle’,mav=(5,10,30),volume=True,show_nontrading=False,title=‘001227-candle’,ylabel=‘price’,ylabel_lower=‘volume’)
2.1.10 设置图像大小类型
使用figratio设置图像的纵横比,使用figscale设置图像的缩小或者放大比例,figscale=2,就是放大2倍
mpf.plot(df,type=‘candle’,mav=(5,10,30),volume=True,show_nontrading=False,title=‘001227-candle’,ylabel=‘price’,ylabel_lower=‘volume’,figratio=(6,4),figscale=0.8)
以上是关于Python数据可视化:mplfinance创建蜡烛图的主要内容,如果未能解决你的问题,请参考以下文章
matplotlib.axis.axes 体积的 mplfinance 错误