繁体   English   中英

如何在 mplfinance 中设置刻度线和 label 颜色?

[英]How do I set the tick and label colours in mplfinance?

我已经设法对我的大多数 mplfinance 图表进行颜色坐标,但我无法弄清楚如何设置刻度和标签的颜色。 在此处输入图像描述

我目前有以下代码:

market_colours = mpf.make_marketcolors(up="g", down="r", edge=BACKGROUND_COLOUR, wick=LINE_COLOUR)
style = mpf.make_mpf_style(marketcolors=market_colours, facecolor=BACKGROUND_COLOUR, edgecolor=LINE_COLOUR,
                           figcolor=BACKGROUND_COLOUR, gridcolor=LINE_COLOUR, gridstyle="--")

mpf.plot(df, type="candle", style=style)

这是我在 matplotlib 中的代码,通常这样做:

ax.xaxis.label.set_color(TEXT_COLOUR)
ax.yaxis.label.set_color(TEXT_COLOUR)
for axis in ["left"]:  # modify borders
    ax.spines[axis].set_color(LINE_COLOUR)
    ax.spines[axis].set_linewidth(3)
for axis in ["top", "right", "bottom"]:  # remove borders
    ax.spines[axis].set_linewidth(0)
for axis in ["x", "y"]:
    ax.tick_params(axis=axis, colors=LINE_COLOUR, which="both", width=2)

这篇文章的答案显示了mpf.plot的可能 kwargs 但我找不到任何可以做到这一点的东西,或者在mplfinance 的样式文档中

免责声明:我对mplfinance不是很熟悉,所以可能有更好的方法来解决这个问题。 我认为维护mplfinance Daniel Goldfarb 会定期检查这些问题,并可能会启发我们更好的方法。

我也没有找到直接定义这些图像方面的方法,不幸的是, mplfinance不会返回它创建的轴对象,因此我们不能追溯更改图像元素。 但是, 这里说您可以提供 rcparams 作为字典。 Matplotlib 使用 rcparams 生成用于标准或当前 plot 的样式。 如果我们这样做,我们可以像您在 matplotlib 代码中所做的那样修改某些图像元素:

import pandas as pd
import mplfinance as mpf
import matplotlib.pyplot as plt
df = pd.read_csv('examples/data/SP500_NOV2019_Hist.csv',index_col=0,parse_dates=True)
df.index.name = 'Date'

BACKGROUND_COLOUR="black"
LINE_COLOUR = "blue"
TEXT_COLOUR = "orange"

style_dic = {"xtick.color": LINE_COLOUR, 
             "ytick.color": LINE_COLOUR, 
             "xtick.labelcolor": TEXT_COLOUR, 
             "ytick.labelcolor": TEXT_COLOUR,
             "axes.spines.top": False, 
             "axes.spines.right": False}

market_colours = mpf.make_marketcolors(up="g", down="r", edge=BACKGROUND_COLOUR, wick=LINE_COLOUR)
style = mpf.make_mpf_style(marketcolors=market_colours, facecolor=BACKGROUND_COLOUR, edgecolor=LINE_COLOUR,
                           figcolor=BACKGROUND_COLOUR, gridcolor=LINE_COLOUR, gridstyle="--", rc=style_dic)

mpf.plot(df, type="candle", style=style)

plt.show()

样品 output: 在此处输入图像描述

我只在这个示例代码中包含了一个带有很容易找到的 rcparams 的style_dic字典,而且我的印象是,您将无法使用此策略更改所有所需的图像方面。 可以在此处找到 rcparams 列表。

由于 mplfinance 提供了 function 的样式,因此很容易从默认的 styles 到 select 您喜欢的样式并根据所选样式进行自定义。

  • 'mike' 样式设置
style = dict(style_name    = 'mike',
             base_mpl_style= 'dark_background', 
             marketcolors  = {'candle'  : {'up':'#000000', 'down':'#0080ff'},
                              'edge'    : {'up':'#ffffff', 'down':'#0080ff'},
                              'wick'    : {'up':'#ffffff', 'down':'#ffffff'},
                              'ohlc'    : {'up':'#ffffff', 'down':'#ffffff'},
                              'volume'  : {'up':'#7189aa', 'down':'#7189aa'},
                              'vcdopcod': False, # Volume Color Depends On Price Change On Day
                              'alpha'   : 1.0,
                             },
             mavcolors     = ['#ec009c','#78ff8f','#fcf120'],
             y_on_right    = True,
             gridcolor     = None,
             gridstyle     = None,
             facecolor     = None,
             rc            = [ ('axes.edgecolor'  , 'white'   ),
                               ('axes.linewidth'  ,  1.5      ),
                               ('axes.labelsize'  , 'large'   ),
                               ('axes.labelweight', 'semibold'),
                               ('axes.grid'       , True      ),
                               ('axes.grid.axis'  , 'both'    ),
                               ('axes.grid.which' , 'major'   ),
                               ('grid.alpha'      ,  0.9      ),
                               ('grid.color'      , '#b0b0b0' ),
                               ('grid.linestyle'  , '--'      ),
                               ('grid.linewidth'  ,  0.8      ),
                               ('figure.facecolor', '#0a0a0a' ),
                               ('patch.linewidth' ,  1.0      ),
                               ('lines.linewidth' ,  1.0      ),
                               ('font.weight'     , 'medium'  ),
                               ('font.size'       ,  10.0     ),
                               ('figure.titlesize', 'x-large' ),
                               ('figure.titleweight','semibold'),
                             ],
             base_mpf_style= 'mike'
            )

编辑

更改刻度和标签的颜色,这是您基于此样式的选择。

import mplfinance as mpf
import yfinance as yf

df = yf.download("AAPL", start="2021-10-01", end="2021-12-31")

my_style = mpf.make_mpf_style(base_mpf_style='mike',
                              base_mpl_style='dark_background',
                              marketcolors=mpf.make_marketcolors(up='g',down='r',
                                                                 edge='white',
                                                                 wick={'up':'g','down':'r'},
                                                                 volume='gray',
                                                                 ohlc='white'),
                              gridcolor='white',
                              gridstyle="--",
                              rc={'xtick.color':'yellow',
                                  'ytick.color':'yellow',
                                  'axes.labelcolor':'yellow' 
                                 }
                             )

mpf.plot(df, type="candle", style=my_style, figratio=(9,6))

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM