1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python数据可视化:mplfinance创建蜡烛图(一)

Python数据可视化:mplfinance创建蜡烛图(一)

时间:2022-06-26 12:00:18

相关推荐

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 pdimport matplotlib.pyplot as pltimport mplfinance as mpfplt.rcParams['font.sans-serif'] = ['simHei'] # 以黑体显示中文plt.rcParams['axes.unicode_minus'] = False # 解决保存图像符号“-”显示为放块的问题import tushare as ts # tushare版本需大于1.2.10pd.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='0426')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)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。