Source code for plotnine.themes.theme_seaborn

from ..options import get_option
from .elements import element_rect, element_text
from .theme import theme


[docs]class theme_seaborn(theme): """ Theme for seaborn. Credit to Michael Waskom's seaborn: - http://stanford.edu/~mwaskom/software/seaborn - https://github.com/mwaskom/seaborn Parameters ---------- style: str in ``['whitegrid', 'darkgrid', 'nogrid', 'ticks']`` Style of axis background. context: str in ``['notebook', 'talk', 'paper', 'poster']`` Intended context for resulting figures. font : str Font family, see matplotlib font manager. font_scale : float, optional Separate scaling factor to independently scale the size of the font elements. """ def __init__( self, style="darkgrid", context="notebook", font="sans-serif", font_scale=1, ): from .seaborn_rcmod import set_theme rcparams = set_theme( context=context, style=style, font=font, font_scale=font_scale ) base_size = rcparams["font.size"] half_line = base_size / 2 line_margin = half_line * 0.8 / 2 m = get_option("base_margin") super().__init__( aspect_ratio=get_option("aspect_ratio"), dpi=get_option("dpi"), figure_size=get_option("figure_size"), text=element_text(size=base_size, rotation=0), axis_text=element_text( size=base_size * 0.8, margin={ "t": line_margin, "b": line_margin, "l": line_margin, "r": line_margin, "units": "pt", }, ), axis_title_x=element_text( va="bottom", ha="center", margin={"t": m, "units": "fig"} ), axis_title_y=element_text( angle=90, va="center", ha="left", margin={"r": m, "units": "fig"}, ), legend_box="auto", legend_box_just="auto", legend_box_margin=0, legend_box_spacing=m * 3, # figure units legend_direction="auto", legend_entry_spacing_x=5, legend_entry_spacing_y=2, legend_key_size=base_size * 0.8 * 1.8, legend_margin=0, legend_position="right", legend_spacing=10, # points legend_text=element_text( va="baseline", ha="left", margin={"t": 3, "b": 3, "l": 3, "r": 3, "units": "pt"}, ), legend_title=element_text( ha="left", margin={ "t": m, "b": m, "l": m, "r": m, "units": "fig", }, ), legend_title_align="auto", panel_spacing=m, plot_caption=element_text( size=base_size * 0.8, ha="right", va="bottom", ma="left", margin={"t": m, "units": "fig"}, ), plot_margin=m, plot_subtitle=element_text( size=base_size * 1, ha="left", va="top", ma="left", margin={"b": m, "units": "fig"}, ), plot_title=element_text( size=base_size * 1.2, ha="left", va="top", ma="left", margin={"b": m, "units": "fig"}, ), strip_align=0, strip_background=element_rect(color="None", fill="#D1CDDF"), strip_text=element_text( size=base_size * 0.8, linespacing=1.0, margin={ "t": 1 / 3, "b": 1 / 3, "l": 1 / 3, "r": 1 / 3, "units": "lines", }, ), strip_text_y=element_text(rotation=-90), complete=True, ) self._rcParams.update(rcparams)