Python mplfinance库④ 如何自定义style样式

简介: Python mplfinance库④ 如何自定义style样式

使用mplfinance的时候,我们通过设定参数style,可以得到多种多样的图像风格。style参数常用的内置样式有:‘binance’, ‘blueskies’, ‘brasil’, ‘charles’, ‘checkers’, ‘classic’, ‘default’, ‘mike’, ‘nightclouds’, ‘sas’, ‘starsandstripes’, ‘yahoo’。
这些内置样式中,很多都是按照美股的习惯红色表示下跌,韭菜色(绿色)表示上涨。这与我们A股的显示习惯刚好是相反的。
当这些样式满足不了我们的需求,或者说我们有更美的灵感与创造的时候,我们也可以自己定义样式。
我们使用 mpf.make_mpf_style()函数来设定新的风格样式,然后将其传给mpf.plot()的参数style即可。

第一步,我们照常扒拉数据:

# 从tushare调取 牧原股份(002714.SZ) 股价数据
import tushare as ts
import pandas as pd
import mplfinance as mpf
token = 'Your token'   # 输入你的接口密匙,获取方式及相关权限见Tushare官网。
pro = ts.pro_api(token)
df = pro.daily(ts_code='002714.SZ') 

# 然后 将该DataFrame对象处理为适合我们使用的格式
df = df.loc[:, ['trade_date', 'open', 'high', 'low', 'close', 'vol']]
df.rename(
    columns={
    
        'trade_date': 'Date', 'open': 'Open',
        'high': 'High', 'low': 'Low',
        'close': 'Close', 'vol': 'Volume'},
    inplace=True)       # 重定义列名,方便统一规范操作。
df['Date'] = pd.to_datetime(df['Date'])  # 转换日期列的格式,便于作图
df.set_index(['Date'], inplace=True)  # 将日期列作为行索引
df = df.sort_index()  # 倒序,因为Tushare的数据是最近的交易日数据显示在DataFrame上方,倒序后方能保证作图时X轴从左到右时间序列递增。

第二步,我们先使用一下mpf.make_marketcolors()函数,来设定一下K线的颜色方面的信息。一会儿要把这个设定的结果作为实参传给mpf.make_mpf_style()来设定自定义的风格样式。

mc = mpf.make_marketcolors(
    up="red",  # 上涨K线的颜色
    down="green",  # 下跌K线的颜色
    edge="black",  # 蜡烛图箱体的颜色
    volume="blue",  # 成交量柱子的颜色
    wick="black"  # 蜡烛图影线的颜色
)

# 还有一个叫alpha的参数,设置的是candlestick face,取值在0.1-1之间。这个设置的是K线蜡烛颜色的深浅,比如把当alpha设置为0.6的时候红色蜡烛就变成了接近橘黄色。绿色就变成了翠绿色。这个根据自己的感官来尝试选择就好啦。

mc设置好后,接下来我们要将其传给mpf.make_mpf_style()的marketcolors参数,来设定自定义的风格样式了。

第三步,我们开始设定自定义的风格样式了。
使用mpf.make_mpf_style函数,其参数有:

  • base_mpf_style:继承内置的风格,不想继承的话就不需要设置。这里我们不设置,纯靠自定义。

  • mavcolors 设置均线样式,必须使用列表传参

  • facecolor 设置前景色(坐标系颜色)

  • edgecolor 设置框线样式

  • figcolor 设置图像外周边填充色

  • gridcolor 设置网格线颜色

  • gridaxis 设置网格线方向,both双向 'horizontal’水平, 'vertical’垂直

  • gridstyle 设置网格线线型 例如
    ‘-’/‘solid’, ‘–’/‘dashed’, ‘-.’/‘dashdot’, ‘:’/‘dotted’, None/’ ‘/’’

  • y_on_right 设置y轴位置是否在右

  • rc 使用rcParams的dict设置样式,如果内容与上面的自定义设置相同,那么自定义设置覆盖rcParams设置
    这个参数常用的写法为:
    rc={‘font.family’: ‘SimHei’, ‘axes.unicode_minus’: ‘False’}
    是用来解决 mplfinance库生成的图象 中文乱码 和不显示负数的问题的。

  • marketcolors 就是上一步我们定义的那个K线的属性,把它传入就OK了。

s = mpf.make_mpf_style(
    gridaxis='both',
    gridstyle='-.',
    y_on_right=True,
    marketcolors=mc,
    edgecolor='b',
    figcolor='r',
    facecolor='y', 
    gridcolor='c')

第四步,开始使用mpf.plot()绘图了,传入上边设定好的风格s

mpf.plot(df.loc['2020-11': '2020-12'], type='candle', ylabel="price", style=s, title='A_stock-Muyuan 2020-Nov&Dec_candle_line', mav=(5, 10), volume=True, ylabel_lower="volume(shares)")

最终效果如图所示:
在这里插入图片描述


呃呃呃…找了半天,mplfinance库貌似也是存在一个缺点的。
源代码扒了半天也没有找到能自定义背景图的图片的参数,
也许是考虑到金融量化不需要二次元吧。
这对于二次元宅无疑是一项不小的打击。
算了,matplotlib.pyplot虽然句子写得长些,这一点还是挺好的哈哈哈哈哈哈。


更多方法技巧点击下方姊妹篇文章链接:

mplfinance基本参数介绍:
Python mplfinance库绘图① 基本参数介绍(简单秒懂)

关于如何解决 mplfinance 中文乱码 和 图像不正常显示负数的问题:
Python mapfinance库②中文标题乱码 与 显示负数 解决方案

关于如何在这种高度封装的状态下绘图时添加一条其他曲线:
Python mplfinance库绘图③ 如何额外添加一条其他图线

目录
相关文章
|
30天前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
62 20
|
20天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
83 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
184 77
|
18天前
|
数据挖掘 数据处理 开发者
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
28 10
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
64 11
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
100 8
|
4月前
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
218 3
|
8月前
|
开发工具 git Python
安装和使用`libnum`是一个用于数字理论函数的Python库
【6月更文挑战第19天】`libnum`是Python的数字理论函数库。安装可通过`git clone`,进入目录后运行`python setup.py install`,也可用`pip install libnum`。示例:使用`int_to_hex`将十进制数42转换为十六进制字符串'2a'。注意,信息可能已过时,应查最新文档以确保准确性。如遇问题,参考GitHub仓库或寻求社区帮助。
147 1
|
7月前
|
Python
确保你已经安装了`python-barcode`库。如果没有,可以通过pip来安装:
确保你已经安装了`python-barcode`库。如果没有,可以通过pip来安装:
|
Python
Anaconda虚拟环境安装Python库与Spyder
本文介绍在Anaconda中,为Python的虚拟环境安装第三方库与Spyder等配套软件的方法~
481 1
Anaconda虚拟环境安装Python库与Spyder

热门文章

最新文章