自定义 mplfinance 图 python

Customize mplfinance plot python

我想更改填充形状的颜色并在左上角添加图像徽标,在右上角添加价格,但我不希望价格和徽标在图表上重叠,有没有办法将其向上移动?

我的代码:

 def chartBuilber(self):
    df: DataFrame = pd.DataFrame.from_dict(self.priceHistory()).fillna(method="backfill")
    df.set_index('Date', inplace=True)
    df = df.astype(float)


    market_colors = mpf.make_marketcolors(
        base_mpf_style="yahoo"
    )
    rc = {
        "axes.labelcolor": "none",
        "axes.spines.bottom": True,
        "axes.spines.left": False,
        "axes.spines.right": False,
        "axes.spines.top": False,
        "font.size": 12,
    }

    styles = mpf.make_mpf_style(
        base_mpf_style="nightclouds",
        marketcolors=market_colors,
        gridstyle="",
        rc=rc
    )

    mpf.plot(df, type='line',
             title='Test',
             linecolor='#00ff00',
             style=styles,
             volume=True,
             figsize=(18, 12),
             figscale=0.5,
             fill_between=df['Close'].values,
             tight_layout=True,
             scale_padding={'left': 0.5, 'top': 5, 'right': 0.7, 'bottom': 1})

要更改填充颜色,您可以将 fill_between 指定为 dict(而不是数字列表)。在字典中,您必须为 y 值指定 y1=(例如,在您的情况下,y1=df['Close'].values)。然后还向字典 facecolor= 添加您想要的填充颜色。因此,类似于:

mpf.plot(df,...,fill_between=dict(y1=df['Close'].values`,facecolor='lime'),...)

为了在图的顶部获得一些额外的空间,您可以使用 kwarg ylim= 指定一个双元素元组或列表 (ymin,ymax),其中 ymax 足够大于您的最大 y 值给你 space 你想要的数量。