参考:mplfinance官方说明
凡事上来先举个例子 1.获取数据import tushare as ts
import mplfinance as mpf
import pandas as pd
pro=ts.pro_api('your token')
#获取20211001至20211231之间某科股票的日线行情数据
df=pro.daily(ts_code='000002.SZ',start_date='20211001',end_date='20211231')
#由于获取的数据按交易日降序排序,所以设置按交易日升序
df=df.sort_values('trade_date')
df.head()
返回结果
2.设置行索引,列名重命名#将string类型的交易日期转化为日期格式
df['trade_date']=pd.to_datetime(df['trade_date'])
#列名重命名
df.rename(columns={'trade_date':'Date','open':'Open','high':'High','low':'Low','close':'Close','vol':'Volume'},inplace=True)
#将交易日期设置为行索引
df.set_index('Date',inplace=True)
df.head()
3.设置绘图格式并绘图
#自定义绘图样式 mycolor=mpf.make_marketcolors(up='red',down='green',edge='i',wick='i') mystyle=mpf.make_mpf_style(marketcolors=mycolor,gridaxis='both',gridstyle='-.') #绘图 mpf.plot(df,type="candle",style=mystyle) plt.show()
plot的参数说明
mpf.plot(data, type, title, ylabel, style, volume, ylabel_lower, show_nontrading, figratio, mav)
| No. | 参数 | 说明 |
| 1 | data | DataFrame对象,要保证其有Open, High, Low, Close四个列。且行索引的名称必须是’Date‘,此外还有一列是’Volume’,这一列不是必须的(如果要同时绘制成交量柱状图,则还需要该列名为Volume的列。 |
| 2 | type | 绘制图线的类型,可以的选择有* ‘ohlc’, ‘candle’(蜡烛图), ‘line’(直线,仅绘制收盘价时序图时用), ‘renko’, ‘pnf’。 |
| 3 | title | 图片标题,默认不能有汉字和其他一些特殊字符,如果想使用汉字,需要加一些修改。 |
| 4 | ylabel | 纵轴的标签 |
| 5 | style | 样式 mplfinance提供了很多内置样式,如 |
| 6 | volume | True表示添加成交量,默认False。 |
| 7 | ylabel_lower | 成交量的Y轴标签。 |
| 8 | show_nontrading | True显示非交易日,默认False。(这个一般不怎么常用。) |
| 9 | figratio | 控制图表大小的元组。 |
| 10 | mav | 整数或包含整数的元组,是否在图表中添加移动平均线。如mav=(5, 10)表示添加5日均线和10日均线。 |
| 11 | savefig | 如果要保存生成的图片,则加入savefig参数,参数值为要保存的路径+文件名。 |
make_mpf_style(base_mpf_style,base_mpl_style,marketcolors,mavcolors,facecolor,edgecolor,figcolor,gridcolor,gridaxis,gridstyle,y_on_right,rc)
参数说明
| No. | 参数 | 说明 |
| 1 | base_mpf_style | 设置需要继承的系统样式 |
| 2 | base_mpl_style | 设置同时使用matplotlib中的式样seaborn |
| 3 | marketcolor | 设置K线的颜色,可以使用make_marketcolors()函数进行定义 |
| 4 | mavcolors | 设置均线的颜色,必须使用列表传参 |
| 5 | facecolor | 设置前景色 |
| 6 | edgecolor | 设置边缘线颜色 |
| 7 | figcolor | 设置图像外周围填充色 |
| 8 | gridcolor | 设置网格线颜色 |
| 9 | gridaxis | 设置网格线的位置,gridaxis='both'/'horizontal'/'vertical' |
| 10 | gridstyle | 设置网格线线型,gridstyle='solid'/'dashed'/'dashdot'/'dotted' |
| 11 | y_on_right | 设置y轴位置是否在右,y_on_right=True设为右边 |
| 12 | rc | 使用rcParams的dict设置格式 |
make_mpf_style()函数中的marketcolors参数,经常make_marketcolors()函数进行设置
make_marketcolors(up,down,edge,wick,volume,ohlc,inherit)
| No. | 参数 | 说明 |
| 1 | up | 设置阳线柱填充颜色 |
| 2 | down | 设置阴线线柱填充颜色 |
| 3 | edge | 设置蜡烛线边缘颜色,edge='i'代表继承K线主体颜色 |
| 4 | wick | 设置蜡烛线上下影线的颜色,wick='i'代表继承K线主体的颜色 |
| 5 | volume | 设置成交量的颜色,volume='i'代表继承K线主体颜色 |
| 6 | ohlc | 设置均线颜色,代表继承K线主体的颜色 |
| 7 | inherit | 设置是否继承,如果设置了继承inherit=True,那么edge/wick/volume/ohlc 四个参数即便设置了颜色也会无效,其中edge/wick/volume/ohlc四个参数除了设置'i',自动继承up和down的颜色外,也可以使用dict模式定义。 |



