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)
custom figure class

Out:

[<matplotlib.lines.Line2D object at 0x7f9f78183490>]

References

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

Out:

<function Figure.text at 0x7f9f92374430>

Keywords: matplotlib code example, codex, python plot, pyplot Gallery generated by Sphinx-Gallery