Source code for plotnine_extra.composition._beside

from __future__ import annotations

from typing import TYPE_CHECKING

from ._compose import Compose

if TYPE_CHECKING:
    from plotnine.ggplot import ggplot


[docs] class Beside(Compose): """ Place plots or compositions side by side **Usage** plot | plot plot | composition composition | plot composition | composition Typically, you will use this class through the `|` operator. See Also -------- plotnine_extra.composition.Stack plotnine_extra.composition.Wrap plotnine_extra.composition.plot_spacer plotnine_extra.composition.Compose """ def __or__(self, rhs: ggplot | Compose) -> Compose: """ Add rhs as a column """ # This is adjacent or i.e. (OR | rhs) so we collapse # the operands into a single operation return ( Beside([*self, rhs]) + self.layout + self.annotation ) def __truediv__(self, rhs: ggplot | Compose) -> Compose: """ Add rhs as a row """ from ._stack import Stack return Stack([self, rhs]) def __add__(self, rhs): """ Add rhs into the besides composition """ from plotnine import ggplot if not isinstance(rhs, (ggplot, Compose)): return super().__add__(rhs) return self | rhs