Custom Figure subclasses#

You can pass a Figure subclass to pyplot.figure if you want to change the default behavior of the figure.

This example defines a Figure subclass WatermarkFigure that accepts an additional parameter watermark to display a custom watermark text. The figure is created using the FigureClass parameter of pyplot.figure. The additional watermark parameter is passed on to the subclass constructor.

import matplotlib.pyplot as plt
from matplotlib.figure import Figure
import numpy as np


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)
[<matplotlib.lines.Line2D object at 0x7f2cfafc26b0>]

References

The use of the following functions, methods, classes and modules is shown in this example:

Gallery generated by Sphinx-Gallery