自定义 Figure 子类#

如果你想改变 Figure 的默认行为,可以将 Figure 子类传递给 pyplot.figure

此示例定义了一个 Figure 子类 WatermarkFigure,它接受一个额外参数 watermark 以显示自定义水印文本。该 Figure 是使用 pyplot.figureFigureClass 参数创建的。额外的 watermark 参数会传递给子类构造函数。

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.figure import Figure


class WatermarkFigure(Figure):
    """A figure with a text watermark."""

    def __init__(self, *args, watermark=None, **kwargs):
        super().__init__(*args, **kwargs)

        if watermark is not None:
            bbox = dict(boxstyle='square', lw=3, ec='gray',
                        fc=(0.9, 0.9, .9, .5), alpha=0.5)
            self.text(0.5, 0.5, watermark,
                      ha='center', va='center', rotation=30,
                      fontsize=40, color='gray', alpha=0.5, bbox=bbox)


x = np.linspace(-3, 3, 201)
y = np.tanh(x) + 0.1 * np.cos(5 * x)

plt.figure(FigureClass=WatermarkFigure, watermark='draft')
plt.plot(x, y)
custom figure class

参考

本示例展示了以下函数、方法、类和模块的使用

标签:组件:Figure 图表类型:折线图 难度:中等 目的:展示

由 Sphinx-Gallery 生成的画廊