Source code for plotnine.watermark
from __future__ import annotations
import typing
if typing.TYPE_CHECKING:
import pathlib
from typing import Any
import matplotlib.figure
import plotnine as p9
__all__ = ("watermark",)
[docs]class watermark:
"""
Add watermark to plot
Parameters
----------
filename : str | pathlib.Path
Image file
xo : int, optional
x position offset in pixels. Default is 0.
yo : int, optional
y position offset in pixels. Default is 0.
alpha : float, optional
Alpha blending value.
kwargs : dict
Additional parameters passed to
:meth:`matplotlib.figure.figimage`.
Notes
-----
You can add more than one watermark to a plot.
"""
def __init__(
self,
filename: str | pathlib.Path,
xo: int = 0,
yo: int = 0,
alpha: float | None = None,
**kwargs: Any,
):
self.filename = filename
kwargs.update(xo=xo, yo=yo, alpha=alpha)
if "zorder" not in kwargs:
kwargs["zorder"] = 99.9
self.kwargs = kwargs
def __radd__(self, gg: p9.ggplot) -> p9.ggplot:
"""
Add watermark to ggplot object
"""
gg.watermarks.append(self)
return gg
[docs] def draw(self, figure: matplotlib.figure.Figure):
"""
Draw watermark
Parameters
----------
figure : Matplotlib.figure.Figure
Matplolib figure on which to draw
"""
from matplotlib.image import imread
X = imread(self.filename)
figure.figimage(X, **self.kwargs)