Source code for plotnine_extra.composition._plot_spacer
from __future__ import annotations
from copy import deepcopy
from plotnine import element_rect, ggplot, theme, theme_void
[docs]
class plot_spacer(ggplot):
"""
Blank area as wide or as tall as a plot
Parameters
----------
fill :
Background color. The default is a transparent area, but it
can be changed through this parameter.
The color can also be modified by adding a
[](`~plotnine.theme`) and setting the
[](`~plotnine.themes.themeable.plot_background`).
See Also
--------
plotnine_extra.composition.Beside
plotnine_extra.composition.Stack
plotnine_extra.composition.Compose
"""
def __init__(
self,
fill: (
str
| tuple[float, float, float]
| tuple[float, float, float, float]
| None
) = None,
):
super().__init__()
self.theme = theme_void()
if fill:
self.theme += theme(
plot_background=element_rect(fill=fill)
)
def __add__(self, rhs) -> plot_spacer: # pyright: ignore[reportIncompatibleMethodOverride]
"""
Add to spacer
All added objects are no ops except the `plot_background` in
in a theme.
"""
self = deepcopy(self)
if isinstance(rhs, theme):
fill = rhs.getp(("plot_background", "facecolor"))
self.theme += theme(
plot_background=element_rect(fill=fill),
# When a spacer is the "last plot" in a composition,
# it is used to determine the figure size and dpi
# and therefore those aspects should be modifiable.
figure_size=rhs.getp("figure_size"),
dpi=rhs.getp("dpi"),
)
return self