一、主题相关

  1. 查看可用预设主题

    mpf.available_styles()

    默认的主题包括:'binance','blueskies','brasil','charles','checkers','classic','default','ibd','kenan','mike','nightclouds','sas','starsandstripes','yahoo'
  2. 设置主题

    mpf.plot(daily,**kwargs,style='classic')
  3. 自定义主题
#设置表示涨和跌的颜色
`mc = mpf.make_marketcolors(up='g',down='r')`
#设置自定义主题
`s = mpf.make_mpf_style(marketcolors=mc)`
#使用自定义主题
`mpf.plot(daily,**kwargs,style='classic')`
  1. 其他细节

    除了设置涨跌颜色外,还可以设置蜡烛图的的边框、烛芯、成交量等颜色,如果想指定某个属性的颜色和涨跌颜色一致,可以将该值直接设置成i,in,inh。如果其他属性颜色属性都希望和涨跌颜色保持一致,直接设置属性inherit=True即可
mc = mpf.make_marketcolors(up='g',down='r',
edge='lime',
wick={'up':'blue','down':'orange'},
volume='in',
ohlc='i')
s = mpf.make_mpf_style(marketcolors=mc)
  1. 可以结合预设主题和自定义颜色使用
# 用法1:
# Create my own `marketcolors` to use with the `nightclouds` style:
mc = mpf.make_marketcolors(up='#00ff00',down='#ff00ff',inherit=True) # Create a new style based on `nightclouds` but with my own `marketcolors`:
s = mpf.make_mpf_style(base_mpf_style='nightclouds',marketcolors=mc)
# 用法2:
mc = mpf.make_marketcolors(base_mpf_style='nightclouds',
edge='#505050',wick='#505050',volume='silver') # Create a style based on `seaborn` using those market colors:
s = mpf.make_mpf_style(base_mpl_style='seaborn',marketcolors=mc)

二、 坐标轴、标题、大小等设置

  1. 设置大小

    mpf.plot(daily,figratio=(18,10),figscale=0.5)
  2. 坐标轴显示非交易日

    mpf.plot(daily,type='candle',figscale=0.9,show_nontrading=True)
  3. 坐标轴文本、标题
mpf.plot(daily,type='candle',volume=True,
title='\nS&P 500, Nov 2019',
ylabel='OHLC Candles',
ylabel_lower='Shares\nTraded',
xlabel='DATE')
  1. 设置横坐标日期格式和旋转角度
mpf.plot(daily,figscale=0.65,datetime_format=' %A, %d-%m-%Y',xrotation=90)
  1. 设置线条颜色

    mpf.plot(daily, type='line', linecolor='#00ff00')
  2. 调整版面布局

    mpf.plot(daily,volume=True,figscale=0.75,mav=(3,6),tight_layout=True)
  3. 颜色填充
# 只给纵坐标着色
mpf.plot(daily,figscale=0.7,fill_between=dict(y1=daily['Low'].values,y2=daily['High'].values))
# 同时给横坐标和纵坐标
dates_df = pd.DataFrame(daily.index)
buy_date = pd.Timestamp('2019-11-06')
sell_date = pd.Timestamp('2019-11-19')
where_values = pd.notnull(dates_df[ (dates_df>=buy_date) & (dates_df <= sell_date) ])['Date'].values y1values = daily['Close'].values
y2value = daily['Low'].min() mpf.plot(daily,figscale=0.7,
fill_between=dict(y1=y1values,y2=y2value,where=where_values,alpha=0.5,color='g')
)

三、多图绘制

  1. 基本用法
fig = mpf.figure(style='yahoo',figsize=(7,8))
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)
mpf.plot(df,ax=ax1,volume=ax2)
  1. 给不同子图指定不同主题
fig = mpf.figure(figsize=(12,9))
ax1 = fig.add_subplot(2,2,1,style='blueskies')
ax2 = fig.add_subplot(2,2,2,style='yahoo') s = mpf.make_mpf_style(base_mpl_style='fast',base_mpf_style='nightclouds')
ax3 = fig.add_subplot(2,2,3,style=s)
ax4 = fig.add_subplot(2,2,4,style='starsandstripes') mpf.plot(df,ax=ax1,axtitle='blueskies',xrotation=15)
mpf.plot(df,type='candle',ax=ax2,axtitle='yahoo',xrotation=15)
mpf.plot(df,ax=ax3,type='candle',axtitle='nightclouds')
mpf.plot(df,type='candle',ax=ax4,axtitle='starsandstripes')
  1. 不同子图同步坐标轴
fig = mpf.figure(figsize=(9,6),style='yahoo')
ax1 = fig.add_subplot(2,3,1)
ax2 = fig.add_subplot(2,3,2)
ax3 = fig.add_subplot(2,3,3) av1 = fig.add_subplot(3,3,7,sharex=ax1)
av2 = fig.add_subplot(3,3,8,sharex=ax1)
av3 = fig.add_subplot(3,3,9,sharex=ax3) mpf.plot(aapl,type='candle',ax=ax1,volume=av1,mav=(10,20),axtitle='AAPL')
mpf.plot(goog,type='candle',ax=ax2,volume=av2,mav=(10,20),axtitle='GOOG')
mpf.plot(spy ,type='candle',ax=ax3,volume=av3,mav=(10,20),axtitle='SPY')
  1. 组合图形
# 方式1:通过使用addplot参数
ap = mpf.make_addplot(spy,type='ohlc')
mpf.plot(aapl,type='candle',style='yahoo',addplot=ap)
# 方式二:使用双轴形式 ax.twinx()
s = mpf.make_mpf_style(base_mpl_style='seaborn',rc={'axes.grid':False})
fig = mpf.figure(style=s,figsize=(7.5,5.75))
ax1 = fig.subplot()
ax2 = ax1.twinx()
mpf.plot(spy ,ax=ax1,type='ohlc',style='default')
mpf.plot(aapl,ax=ax2,type='candle',style='yahoo')
  1. 结合使用addplot和双轴形式
# 用法1:
fig = mpf.figure(style='blueskies',figsize=(7,8))
ax1 = fig.add_subplot(2,1,1)
ax2 = ax1.twinx()
ax4 = fig.add_subplot(2,1,2)
ap = mpf.make_addplot(df[['UpperB','LowerB']],ax=ax2,ylabel='Bollinger Bands')
mpf.plot(df,ax=ax1,volume=ax4,addplot=ap,xrotation=10,type='candle')
# 用法2:
fig = mpf.figure(style='charles',figsize=(7,8))
ax1 = fig.add_subplot(3,1,1)
ax2 = fig.add_subplot(3,1,2,sharex=ax1)
ax3 = fig.add_subplot(3,1,3)
ap = [ mpf.make_addplot(df,type='ohlc',ax=ax2,ylabel='OHLC Price'),
mpf.make_addplot(df[['UpperB','LowerB']],ax=ax1)
]
mpf.plot(df,ax=ax1,volume=ax3,addplot=ap,xrotation=10,type='candle')

四、按不同频率作图

# 将数据聚合成周、月、季度
aggregation = {'Open' :'first',
'High' :'max',
'Low' :'min',
'Close' :'last',
'Volume':'sum'}
dfw = df.resample('1W').agg(aggregation)
dfm = df.resample('1M').agg(aggregation)
dfq = df.resample('1Q').agg(aggregation)
kwargs=dict(volume=True,type='candle',tight_layout=True)
# 可以绘制出周、月和季度的波动图
mpf.plot(df,**kwargs,title='\nINTC Daily ')
mpf.plot(dfw,**kwargs,title='\nINTC Weekly ')
mpf.plot(dfm,**kwargs,title='\nINTC Monthly ')
mpf.plot(dfq,**kwargs,title='\nINTC Quarterly ')

mplfinance常用方法的更多相关文章

  1. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  2. Jquery元素选取、常用方法

    一:常用的选择器:(李昌辉) 基本选择器 $("#myDiv") //匹配唯一的具有此id值的元素 $("div") //匹配指定名称的所有元素 $(" ...

  3. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  4. C# Webbrowser 常用方法及多线程调用

    设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagNa ...

  5. list,tuple,dict,set常用方法

    Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...

  6. 记录yii2-imagine几个常用方法

    记录yii2-imagine几个常用方法: //压缩 Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)->save(Yii::g ...

  7. DOM常用方法总结

    DOM(Document Object Model:文档对象模型)为javascript中的一部分,它为访问和修改html文档或xml文档提供了一些编程接口,DOM以对象的形式来描述文档中的内容,以树 ...

  8. JSP内置对象及常用方法

    jsp九大内置对象及四个作用域: 何为作用域 先让我们看看效果: 大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,applicat ...

  9. java中集合类中Collection接口中的Map接口的常用方法熟悉

    1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...

  10. 解析Exception和C#处理Exception的常用方法总结

    在.NET中,异常是指成员没有完成它的名称宣称可以完成的行动.在异常的机制中,异常和某件事情的发生频率无关. 异常处理四要素包括:一个表示异常详细信息的类类型:一个向调用者引发异常类实例的成员:调用者 ...

随机推荐

  1. fabric学习笔记7

    Fabric2.0Java SDK实践-合约交易 20201303张奕博 2023.1.18 1.创建基础工程 新建一个Maven工程,添加以下依赖 <dependency> <gr ...

  2. VMware-包体选择

    3.二进制包如何选择3.1选择适合当前系统的版本号:    ●找不到适合的,才去尝试别的系统版本号   ●el6兼容el5; el5无法安装el63.2选择适合cpu的架构:   ●x86_ _64包 ...

  3. 档案系统区块链集成 leveldb.net集成

    leveldb.net工作原理:leveldb为键值对数据库,具有增加,删除,查询功能,利用加密链式结构存储和查询数据. 区块(block):在区块链技术中,数据以电子记录的形式被永久储存下来,存放这 ...

  4. cat /dev/null > file后,ls查看文件大小未减小,du查看变为0

    一句话总结: 其他程序正在使用command > file写入文件:将command程序kill后使用command >> file写入文件,即可在command写入file时,用c ...

  5. pycharm界面背景色设置

    1. 打开Pycharm点击左上角File,然后选择找到Settings点击进入->搜索Appearance -> 选择Appearance->Background Image  选 ...

  6. git -----已经被跟踪文件如何在本地提交时忽略

    git update-index --assume-unchanged C.md 注:忽略后将不再拉取和提交c.md这个文件 git update-index --no-assume-unchange ...

  7. C# 日期获得一天的起始时间

    dateTimePicker1.Value = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); ...

  8. Burp学院-SQL注入

    前言: 上传下自己做的笔记,这些题做了好久好久了,一直没冒泡,之前想上传些东西结果博客园炸了就忘了,周五快下班了手头工作暂时缓解了,传点东西上来. 1.SQL injection UNION atta ...

  9. LAN8720 调试笔记

    因为项目需要开始研究LAN8720,还没有仔细研究芯片手册就根据网上能找到的原理图画了第一版电路 调试整整花了我2天半,期间多亏硬汉哥的耐心解答.下面是我调试过程中遇到的一些坑   1.TPTX.TO ...

  10. asp.net core 全局授权管理系统简介

    大家好,我最近在做一个管理系统,我希望能做出一种授权机制,通过数据库的配置,来动态管控每个登入用于的访问权限. 因为才接触core不久,了解core的授权机制还是用了些时间的. 所以总结出来,供大家分 ...